diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..a6736b5a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.turbo +node_modules \ No newline at end of file diff --git a/wrapper/.gitignore b/apps/wrapper/.gitignore similarity index 100% rename from wrapper/.gitignore rename to apps/wrapper/.gitignore diff --git a/wrapper/README.md b/apps/wrapper/README.md similarity index 100% rename from wrapper/README.md rename to apps/wrapper/README.md diff --git a/wrapper/package-lock.json b/apps/wrapper/package-lock.json similarity index 100% rename from wrapper/package-lock.json rename to apps/wrapper/package-lock.json diff --git a/wrapper/package.json b/apps/wrapper/package.json similarity index 100% rename from wrapper/package.json rename to apps/wrapper/package.json diff --git a/wrapper/public/favicon.ico b/apps/wrapper/public/favicon.ico similarity index 100% rename from wrapper/public/favicon.ico rename to apps/wrapper/public/favicon.ico diff --git a/wrapper/public/index.html b/apps/wrapper/public/index.html similarity index 100% rename from wrapper/public/index.html rename to apps/wrapper/public/index.html diff --git a/wrapper/public/logo192.png b/apps/wrapper/public/logo192.png similarity index 100% rename from wrapper/public/logo192.png rename to apps/wrapper/public/logo192.png diff --git a/wrapper/public/logo512.png b/apps/wrapper/public/logo512.png similarity index 100% rename from wrapper/public/logo512.png rename to apps/wrapper/public/logo512.png diff --git a/wrapper/public/manifest.json b/apps/wrapper/public/manifest.json similarity index 100% rename from wrapper/public/manifest.json rename to apps/wrapper/public/manifest.json diff --git a/wrapper/public/robots.txt b/apps/wrapper/public/robots.txt similarity index 100% rename from wrapper/public/robots.txt rename to apps/wrapper/public/robots.txt diff --git a/wrapper/src/App.css b/apps/wrapper/src/App.css similarity index 100% rename from wrapper/src/App.css rename to apps/wrapper/src/App.css diff --git a/wrapper/src/App.js b/apps/wrapper/src/App.js similarity index 100% rename from wrapper/src/App.js rename to apps/wrapper/src/App.js diff --git a/wrapper/src/App.test.js b/apps/wrapper/src/App.test.js similarity index 100% rename from wrapper/src/App.test.js rename to apps/wrapper/src/App.test.js diff --git a/wrapper/src/forms.json b/apps/wrapper/src/forms.json similarity index 100% rename from wrapper/src/forms.json rename to apps/wrapper/src/forms.json diff --git a/wrapper/src/formsNew.json b/apps/wrapper/src/formsNew.json similarity index 100% rename from wrapper/src/formsNew.json rename to apps/wrapper/src/formsNew.json diff --git a/wrapper/src/index.css b/apps/wrapper/src/index.css similarity index 100% rename from wrapper/src/index.css rename to apps/wrapper/src/index.css diff --git a/wrapper/src/index.js b/apps/wrapper/src/index.js similarity index 100% rename from wrapper/src/index.js rename to apps/wrapper/src/index.js diff --git a/wrapper/src/logo.svg b/apps/wrapper/src/logo.svg similarity index 100% rename from wrapper/src/logo.svg rename to apps/wrapper/src/logo.svg diff --git a/wrapper/src/reportWebVitals.js b/apps/wrapper/src/reportWebVitals.js similarity index 100% rename from wrapper/src/reportWebVitals.js rename to apps/wrapper/src/reportWebVitals.js diff --git a/wrapper/src/setupTests.js b/apps/wrapper/src/setupTests.js similarity index 100% rename from wrapper/src/setupTests.js rename to apps/wrapper/src/setupTests.js diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..4cbcc578 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,296 @@ +{ + "name": "enketo", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concurrently": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-7.4.0.tgz", + "integrity": "sha512-M6AfrueDt/GEna/Vg9BqQ+93yuvzkSKmoTixnwEJkH0LlcGrRC2eCmjeG1tLLHIYfpYJABokqSGyMcXjm96AFA==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "date-fns": "^2.29.1", + "lodash": "^4.17.21", + "rxjs": "^7.0.0", + "shell-quote": "^1.7.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^17.3.1" + } + }, + "date-fns": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz", + "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "turbo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo/-/turbo-1.5.3.tgz", + "integrity": "sha512-/94cswfhXr6wWD6CFyF7E8bjEdjar4O+gzCJ3d49X9t9u9aDYFoQH/TlYTSNbAwXYiGqzJoodhf3kXRyrAiqSg==", + "dev": true, + "requires": { + "turbo-darwin-64": "1.5.3", + "turbo-darwin-arm64": "1.5.3", + "turbo-linux-64": "1.5.3", + "turbo-linux-arm64": "1.5.3", + "turbo-windows-64": "1.5.3", + "turbo-windows-arm64": "1.5.3" + } + }, + "turbo-darwin-64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-darwin-64/-/turbo-darwin-64-1.5.3.tgz", + "integrity": "sha512-MBS8b/3DuMY6v3ljEX9qssHGQXnI4VDWLqvQ6FGfZFMp8lqa7mfoXv1U/MNR9OhSczaftsIS1e9mnD9m/qv7TQ==", + "dev": true, + "optional": true + }, + "turbo-darwin-arm64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-darwin-arm64/-/turbo-darwin-arm64-1.5.3.tgz", + "integrity": "sha512-XNSV6SaxS8dAvGx2BF3H7MsKZ4zchj2kP/eXTss/vUcSRsS+zx0urZcEgxeGUeMk7V7fJq/5Ow7thApNojpwpw==", + "dev": true, + "optional": true + }, + "turbo-linux-64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-linux-64/-/turbo-linux-64-1.5.3.tgz", + "integrity": "sha512-YhYu50CUvy5m80l6dEXEgC3CvjjTelQb14fknAzIXoKztbWhBZqUCucR6jLRZpKgODwP4Fo4LUzz478EMwqy/Q==", + "dev": true, + "optional": true + }, + "turbo-linux-arm64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-linux-arm64/-/turbo-linux-arm64-1.5.3.tgz", + "integrity": "sha512-JjJjxy0kkr/xAWAAE8t7UaTBc3GUc5Tz/Bupbve2VzG0w75md0LqXUV34WpyxMiNTNLmK8Dq7bIczG6OkJ29xQ==", + "dev": true, + "optional": true + }, + "turbo-windows-64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-windows-64/-/turbo-windows-64-1.5.3.tgz", + "integrity": "sha512-PS7+Isy7OX9xWWvtg2FKmh/eN4fTNR2r6RW5m+b+zR7t04QLWYOya1R8CeqgA6GyeFpn4KUxC+AeZ0wOi8RSPw==", + "dev": true, + "optional": true + }, + "turbo-windows-arm64": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/turbo-windows-arm64/-/turbo-windows-arm64-1.5.3.tgz", + "integrity": "sha512-DQzjFbPRd/Db5kkJtCER5DNcbY4ez5Bh8usemNlPZQ7I/5XwEUl9Rn3ss2LJsiv/pR7PkY92TUvmyFtBnqao8Q==", + "dev": true, + "optional": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "xmldom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.6.0.tgz", + "integrity": "sha512-iAcin401y58LckRZ0TkI4k0VSM1Qg0KGSc3i8rU+xrxe19A/BN1zHyVSJY7uoutVlaTSzYyk/v5AmkewAP7jtg==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } +} diff --git a/package.json b/package.json index 5c13c4a8..eeeb59f1 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,16 @@ "version": "1.0.0", "description": "Enketo", "scripts": { + "start": "npm i && npm run concurrent", + "build": "turbo run build", + "docker-cleanup": "docker rm -f enketo-redis-main enketo-redis-cache", + "enketo-core": "cd packages/enketo-core && npm i && npm start", + "enketo-express": "cd packages/enketo-express && docker run --name enketo-redis-main -p 6379:6379 -d redis && docker run --name enketo-redis-cache -p 6380:6379 -d redis && npm i && npm i -g grunt && grunt develop", + "form-manager": "cd packages/form-manager && npm i && npm start", + "wrapper": "cd apps/wrapper && npm i && npm start", + "concurrent-packages": "concurrently \"npm run enketo-core\" \"npm run enketo-express\" \"npm run form-manager\"", + "concurrent-applications": "concurrently \"npm run wrapper\"", + "concurrent": "npm run docker-cleanup && concurrently \"npm run concurrent-packages\" \"npm run concurrent-applications\"", "start-redis-cache": "docker run --name enketo-redis-cache -p 6380:6379 -d redis", "start-redis-main": "docker run --name enketo-redis-main -p 6379:6379 -d redis", "start-ec": "cd enketo-core && npm start", @@ -10,6 +20,11 @@ "start-fm": "cd form-manager && npm run start:dev", "start-web": "cd wrapper && npm start" }, + "workspaces": [ + "docs", + "apps/*", + "packages/*" + ], "repository": { "type": "git", "url": "git+https://github.com/ChakshuGautam/enketo.git" @@ -22,5 +37,9 @@ "homepage": "https://github.com/ChakshuGautam/enketo#readme", "dependencies": { "xmldom": "^0.6.0" + }, + "devDependencies": { + "concurrently": "^7.4.0", + "turbo": "^1.5.3" } -} \ No newline at end of file +} diff --git a/enketo-core/.editorconfig b/packages/enketo-core/.editorconfig similarity index 100% rename from enketo-core/.editorconfig rename to packages/enketo-core/.editorconfig diff --git a/enketo-core/.eslintignore b/packages/enketo-core/.eslintignore similarity index 100% rename from enketo-core/.eslintignore rename to packages/enketo-core/.eslintignore diff --git a/enketo-core/.eslintrc.json b/packages/enketo-core/.eslintrc.json similarity index 100% rename from enketo-core/.eslintrc.json rename to packages/enketo-core/.eslintrc.json diff --git a/enketo-core/.gitignore b/packages/enketo-core/.gitignore similarity index 100% rename from enketo-core/.gitignore rename to packages/enketo-core/.gitignore diff --git a/enketo-core/.prettierrc b/packages/enketo-core/.prettierrc similarity index 100% rename from enketo-core/.prettierrc rename to packages/enketo-core/.prettierrc diff --git a/enketo-core/.publishrc b/packages/enketo-core/.publishrc similarity index 100% rename from enketo-core/.publishrc rename to packages/enketo-core/.publishrc diff --git a/enketo-core/.travis.yml b/packages/enketo-core/.travis.yml similarity index 100% rename from enketo-core/.travis.yml rename to packages/enketo-core/.travis.yml diff --git a/enketo-core/.vscode/launch.json b/packages/enketo-core/.vscode/launch.json similarity index 100% rename from enketo-core/.vscode/launch.json rename to packages/enketo-core/.vscode/launch.json diff --git a/enketo-core/.vscode/settings.json b/packages/enketo-core/.vscode/settings.json similarity index 100% rename from enketo-core/.vscode/settings.json rename to packages/enketo-core/.vscode/settings.json diff --git a/enketo-core/.vscode/tasks.json b/packages/enketo-core/.vscode/tasks.json similarity index 100% rename from enketo-core/.vscode/tasks.json rename to packages/enketo-core/.vscode/tasks.json diff --git a/enketo-core/CHANGELOG.md b/packages/enketo-core/CHANGELOG.md similarity index 100% rename from enketo-core/CHANGELOG.md rename to packages/enketo-core/CHANGELOG.md diff --git a/enketo-core/Gruntfile.js b/packages/enketo-core/Gruntfile.js similarity index 100% rename from enketo-core/Gruntfile.js rename to packages/enketo-core/Gruntfile.js diff --git a/enketo-core/ISSUE_TEMPLATE/bug_report.md b/packages/enketo-core/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from enketo-core/ISSUE_TEMPLATE/bug_report.md rename to packages/enketo-core/ISSUE_TEMPLATE/bug_report.md diff --git a/enketo-core/ISSUE_TEMPLATE/feature_request.md b/packages/enketo-core/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from enketo-core/ISSUE_TEMPLATE/feature_request.md rename to packages/enketo-core/ISSUE_TEMPLATE/feature_request.md diff --git a/enketo-core/LICENSE b/packages/enketo-core/LICENSE similarity index 100% rename from enketo-core/LICENSE rename to packages/enketo-core/LICENSE diff --git a/enketo-core/README.md b/packages/enketo-core/README.md similarity index 100% rename from enketo-core/README.md rename to packages/enketo-core/README.md diff --git a/enketo-core/app.js b/packages/enketo-core/app.js similarity index 100% rename from enketo-core/app.js rename to packages/enketo-core/app.js diff --git a/enketo-core/config.js b/packages/enketo-core/config.js similarity index 100% rename from enketo-core/config.js rename to packages/enketo-core/config.js diff --git a/enketo-core/docs/AnalogScaleWidget.html b/packages/enketo-core/docs/AnalogScaleWidget.html similarity index 100% rename from enketo-core/docs/AnalogScaleWidget.html rename to packages/enketo-core/docs/AnalogScaleWidget.html diff --git a/enketo-core/docs/AutocompleteSelectpicker.html b/packages/enketo-core/docs/AutocompleteSelectpicker.html similarity index 100% rename from enketo-core/docs/AutocompleteSelectpicker.html rename to packages/enketo-core/docs/AutocompleteSelectpicker.html diff --git a/enketo-core/docs/Columns.html b/packages/enketo-core/docs/Columns.html similarity index 100% rename from enketo-core/docs/Columns.html rename to packages/enketo-core/docs/Columns.html diff --git a/enketo-core/docs/Comment.html b/packages/enketo-core/docs/Comment.html similarity index 100% rename from enketo-core/docs/Comment.html rename to packages/enketo-core/docs/Comment.html diff --git a/enketo-core/docs/DatepickerExtended.html b/packages/enketo-core/docs/DatepickerExtended.html similarity index 100% rename from enketo-core/docs/DatepickerExtended.html rename to packages/enketo-core/docs/DatepickerExtended.html diff --git a/enketo-core/docs/DatepickerMobile.html b/packages/enketo-core/docs/DatepickerMobile.html similarity index 100% rename from enketo-core/docs/DatepickerMobile.html rename to packages/enketo-core/docs/DatepickerMobile.html diff --git a/enketo-core/docs/DatepickerNative.html b/packages/enketo-core/docs/DatepickerNative.html similarity index 100% rename from enketo-core/docs/DatepickerNative.html rename to packages/enketo-core/docs/DatepickerNative.html diff --git a/enketo-core/docs/DatepickerNativeIos.html b/packages/enketo-core/docs/DatepickerNativeIos.html similarity index 100% rename from enketo-core/docs/DatepickerNativeIos.html rename to packages/enketo-core/docs/DatepickerNativeIos.html diff --git a/enketo-core/docs/DatetimepickerExtended.html b/packages/enketo-core/docs/DatetimepickerExtended.html similarity index 100% rename from enketo-core/docs/DatetimepickerExtended.html rename to packages/enketo-core/docs/DatetimepickerExtended.html diff --git a/enketo-core/docs/DesktopSelectpicker.html b/packages/enketo-core/docs/DesktopSelectpicker.html similarity index 100% rename from enketo-core/docs/DesktopSelectpicker.html rename to packages/enketo-core/docs/DesktopSelectpicker.html diff --git a/enketo-core/docs/DrawWidget.html b/packages/enketo-core/docs/DrawWidget.html similarity index 100% rename from enketo-core/docs/DrawWidget.html rename to packages/enketo-core/docs/DrawWidget.html diff --git a/enketo-core/docs/Filepicker.html b/packages/enketo-core/docs/Filepicker.html similarity index 100% rename from enketo-core/docs/Filepicker.html rename to packages/enketo-core/docs/Filepicker.html diff --git a/enketo-core/docs/Form.html b/packages/enketo-core/docs/Form.html similarity index 100% rename from enketo-core/docs/Form.html rename to packages/enketo-core/docs/Form.html diff --git a/enketo-core/docs/FormLogicError.html b/packages/enketo-core/docs/FormLogicError.html similarity index 100% rename from enketo-core/docs/FormLogicError.html rename to packages/enketo-core/docs/FormLogicError.html diff --git a/enketo-core/docs/FormModel.html b/packages/enketo-core/docs/FormModel.html similarity index 100% rename from enketo-core/docs/FormModel.html rename to packages/enketo-core/docs/FormModel.html diff --git a/enketo-core/docs/Geopicker.html b/packages/enketo-core/docs/Geopicker.html similarity index 100% rename from enketo-core/docs/Geopicker.html rename to packages/enketo-core/docs/Geopicker.html diff --git a/enketo-core/docs/ImageMap.html b/packages/enketo-core/docs/ImageMap.html similarity index 100% rename from enketo-core/docs/ImageMap.html rename to packages/enketo-core/docs/ImageMap.html diff --git a/enketo-core/docs/ImageViewer.html b/packages/enketo-core/docs/ImageViewer.html similarity index 100% rename from enketo-core/docs/ImageViewer.html rename to packages/enketo-core/docs/ImageViewer.html diff --git a/enketo-core/docs/LikertItem.html b/packages/enketo-core/docs/LikertItem.html similarity index 100% rename from enketo-core/docs/LikertItem.html rename to packages/enketo-core/docs/LikertItem.html diff --git a/enketo-core/docs/MediaPicker.html b/packages/enketo-core/docs/MediaPicker.html similarity index 100% rename from enketo-core/docs/MediaPicker.html rename to packages/enketo-core/docs/MediaPicker.html diff --git a/enketo-core/docs/MobileSelectPicker.html b/packages/enketo-core/docs/MobileSelectPicker.html similarity index 100% rename from enketo-core/docs/MobileSelectPicker.html rename to packages/enketo-core/docs/MobileSelectPicker.html diff --git a/enketo-core/docs/MyWidget.html b/packages/enketo-core/docs/MyWidget.html similarity index 100% rename from enketo-core/docs/MyWidget.html rename to packages/enketo-core/docs/MyWidget.html diff --git a/enketo-core/docs/Nodeset.html b/packages/enketo-core/docs/Nodeset.html similarity index 100% rename from enketo-core/docs/Nodeset.html rename to packages/enketo-core/docs/Nodeset.html diff --git a/enketo-core/docs/NoteWidget.html b/packages/enketo-core/docs/NoteWidget.html similarity index 100% rename from enketo-core/docs/NoteWidget.html rename to packages/enketo-core/docs/NoteWidget.html diff --git a/enketo-core/docs/Radiopicker.html b/packages/enketo-core/docs/Radiopicker.html similarity index 100% rename from enketo-core/docs/Radiopicker.html rename to packages/enketo-core/docs/Radiopicker.html diff --git a/enketo-core/docs/RangeWidget.html b/packages/enketo-core/docs/RangeWidget.html similarity index 100% rename from enketo-core/docs/RangeWidget.html rename to packages/enketo-core/docs/RangeWidget.html diff --git a/enketo-core/docs/RankWidget.html b/packages/enketo-core/docs/RankWidget.html similarity index 100% rename from enketo-core/docs/RankWidget.html rename to packages/enketo-core/docs/RankWidget.html diff --git a/enketo-core/docs/RatingWidget.html b/packages/enketo-core/docs/RatingWidget.html similarity index 100% rename from enketo-core/docs/RatingWidget.html rename to packages/enketo-core/docs/RatingWidget.html diff --git a/enketo-core/docs/TableWidget.html b/packages/enketo-core/docs/TableWidget.html similarity index 100% rename from enketo-core/docs/TableWidget.html rename to packages/enketo-core/docs/TableWidget.html diff --git a/enketo-core/docs/TextMaxWidget.html b/packages/enketo-core/docs/TextMaxWidget.html similarity index 100% rename from enketo-core/docs/TextMaxWidget.html rename to packages/enketo-core/docs/TextMaxWidget.html diff --git a/enketo-core/docs/TextPrintWidget.html b/packages/enketo-core/docs/TextPrintWidget.html similarity index 100% rename from enketo-core/docs/TextPrintWidget.html rename to packages/enketo-core/docs/TextPrintWidget.html diff --git a/enketo-core/docs/TextareaWidget.html b/packages/enketo-core/docs/TextareaWidget.html similarity index 100% rename from enketo-core/docs/TextareaWidget.html rename to packages/enketo-core/docs/TextareaWidget.html diff --git a/enketo-core/docs/ThousandsSeparatorWidget.html b/packages/enketo-core/docs/ThousandsSeparatorWidget.html similarity index 100% rename from enketo-core/docs/ThousandsSeparatorWidget.html rename to packages/enketo-core/docs/ThousandsSeparatorWidget.html diff --git a/enketo-core/docs/TimepickerExtended.html b/packages/enketo-core/docs/TimepickerExtended.html similarity index 100% rename from enketo-core/docs/TimepickerExtended.html rename to packages/enketo-core/docs/TimepickerExtended.html diff --git a/enketo-core/docs/TranslatedError.html b/packages/enketo-core/docs/TranslatedError.html similarity index 100% rename from enketo-core/docs/TranslatedError.html rename to packages/enketo-core/docs/TranslatedError.html diff --git a/enketo-core/docs/UrlWidget.html b/packages/enketo-core/docs/UrlWidget.html similarity index 100% rename from enketo-core/docs/UrlWidget.html rename to packages/enketo-core/docs/UrlWidget.html diff --git a/enketo-core/docs/Widget.html b/packages/enketo-core/docs/Widget.html similarity index 100% rename from enketo-core/docs/Widget.html rename to packages/enketo-core/docs/Widget.html diff --git a/enketo-core/docs/external-SignaturePad.html b/packages/enketo-core/docs/external-SignaturePad.html similarity index 100% rename from enketo-core/docs/external-SignaturePad.html rename to packages/enketo-core/docs/external-SignaturePad.html diff --git a/enketo-core/docs/external-jQuery.html b/packages/enketo-core/docs/external-jQuery.html similarity index 100% rename from enketo-core/docs/external-jQuery.html rename to packages/enketo-core/docs/external-jQuery.html diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.eot b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.eot similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Bold.eot rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.eot diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.ttf b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.ttf similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Bold.ttf rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.ttf diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff2 b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff2 similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff2 rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Bold.woff2 diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.eot b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.eot similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Regular.eot rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.eot diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.ttf b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.ttf similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Regular.ttf rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.ttf diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff diff --git a/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff2 b/packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff2 similarity index 100% rename from enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff2 rename to packages/enketo-core/docs/fonts/Montserrat/Montserrat-Regular.woff2 diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff diff --git a/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 b/packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 similarity index 100% rename from enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 rename to packages/enketo-core/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 diff --git a/enketo-core/docs/global.html b/packages/enketo-core/docs/global.html similarity index 100% rename from enketo-core/docs/global.html rename to packages/enketo-core/docs/global.html diff --git a/enketo-core/docs/index.html b/packages/enketo-core/docs/index.html similarity index 100% rename from enketo-core/docs/index.html rename to packages/enketo-core/docs/index.html diff --git a/enketo-core/docs/js_calculate.js.html b/packages/enketo-core/docs/js_calculate.js.html similarity index 100% rename from enketo-core/docs/js_calculate.js.html rename to packages/enketo-core/docs/js_calculate.js.html diff --git a/enketo-core/docs/js_dom-utils.js.html b/packages/enketo-core/docs/js_dom-utils.js.html similarity index 100% rename from enketo-core/docs/js_dom-utils.js.html rename to packages/enketo-core/docs/js_dom-utils.js.html diff --git a/enketo-core/docs/js_download-utils.js.html b/packages/enketo-core/docs/js_download-utils.js.html similarity index 100% rename from enketo-core/docs/js_download-utils.js.html rename to packages/enketo-core/docs/js_download-utils.js.html diff --git a/enketo-core/docs/js_event.js.html b/packages/enketo-core/docs/js_event.js.html similarity index 100% rename from enketo-core/docs/js_event.js.html rename to packages/enketo-core/docs/js_event.js.html diff --git a/enketo-core/docs/js_fake-dialog.js.html b/packages/enketo-core/docs/js_fake-dialog.js.html similarity index 100% rename from enketo-core/docs/js_fake-dialog.js.html rename to packages/enketo-core/docs/js_fake-dialog.js.html diff --git a/enketo-core/docs/js_fake-translator.js.html b/packages/enketo-core/docs/js_fake-translator.js.html similarity index 100% rename from enketo-core/docs/js_fake-translator.js.html rename to packages/enketo-core/docs/js_fake-translator.js.html diff --git a/enketo-core/docs/js_file-manager.js.html b/packages/enketo-core/docs/js_file-manager.js.html similarity index 100% rename from enketo-core/docs/js_file-manager.js.html rename to packages/enketo-core/docs/js_file-manager.js.html diff --git a/enketo-core/docs/js_form-logic-error.js.html b/packages/enketo-core/docs/js_form-logic-error.js.html similarity index 100% rename from enketo-core/docs/js_form-logic-error.js.html rename to packages/enketo-core/docs/js_form-logic-error.js.html diff --git a/enketo-core/docs/js_form-model.js.html b/packages/enketo-core/docs/js_form-model.js.html similarity index 100% rename from enketo-core/docs/js_form-model.js.html rename to packages/enketo-core/docs/js_form-model.js.html diff --git a/enketo-core/docs/js_form.js.html b/packages/enketo-core/docs/js_form.js.html similarity index 100% rename from enketo-core/docs/js_form.js.html rename to packages/enketo-core/docs/js_form.js.html diff --git a/enketo-core/docs/js_format.js.html b/packages/enketo-core/docs/js_format.js.html similarity index 100% rename from enketo-core/docs/js_format.js.html rename to packages/enketo-core/docs/js_format.js.html diff --git a/enketo-core/docs/js_geolocation.js.html b/packages/enketo-core/docs/js_geolocation.js.html similarity index 100% rename from enketo-core/docs/js_geolocation.js.html rename to packages/enketo-core/docs/js_geolocation.js.html diff --git a/enketo-core/docs/js_input.js.html b/packages/enketo-core/docs/js_input.js.html similarity index 100% rename from enketo-core/docs/js_input.js.html rename to packages/enketo-core/docs/js_input.js.html diff --git a/enketo-core/docs/js_itemset.js.html b/packages/enketo-core/docs/js_itemset.js.html similarity index 100% rename from enketo-core/docs/js_itemset.js.html rename to packages/enketo-core/docs/js_itemset.js.html diff --git a/enketo-core/docs/js_language.js.html b/packages/enketo-core/docs/js_language.js.html similarity index 100% rename from enketo-core/docs/js_language.js.html rename to packages/enketo-core/docs/js_language.js.html diff --git a/enketo-core/docs/js_mask.js.html b/packages/enketo-core/docs/js_mask.js.html similarity index 100% rename from enketo-core/docs/js_mask.js.html rename to packages/enketo-core/docs/js_mask.js.html diff --git a/enketo-core/docs/js_nodeset.js.html b/packages/enketo-core/docs/js_nodeset.js.html similarity index 100% rename from enketo-core/docs/js_nodeset.js.html rename to packages/enketo-core/docs/js_nodeset.js.html diff --git a/enketo-core/docs/js_output.js.html b/packages/enketo-core/docs/js_output.js.html similarity index 100% rename from enketo-core/docs/js_output.js.html rename to packages/enketo-core/docs/js_output.js.html diff --git a/enketo-core/docs/js_page.js.html b/packages/enketo-core/docs/js_page.js.html similarity index 100% rename from enketo-core/docs/js_page.js.html rename to packages/enketo-core/docs/js_page.js.html diff --git a/enketo-core/docs/js_plugins.js.html b/packages/enketo-core/docs/js_plugins.js.html similarity index 100% rename from enketo-core/docs/js_plugins.js.html rename to packages/enketo-core/docs/js_plugins.js.html diff --git a/enketo-core/docs/js_preload.js.html b/packages/enketo-core/docs/js_preload.js.html similarity index 100% rename from enketo-core/docs/js_preload.js.html rename to packages/enketo-core/docs/js_preload.js.html diff --git a/enketo-core/docs/js_print.js.html b/packages/enketo-core/docs/js_print.js.html similarity index 100% rename from enketo-core/docs/js_print.js.html rename to packages/enketo-core/docs/js_print.js.html diff --git a/enketo-core/docs/js_progress.js.html b/packages/enketo-core/docs/js_progress.js.html similarity index 100% rename from enketo-core/docs/js_progress.js.html rename to packages/enketo-core/docs/js_progress.js.html diff --git a/enketo-core/docs/js_readonly.js.html b/packages/enketo-core/docs/js_readonly.js.html similarity index 100% rename from enketo-core/docs/js_readonly.js.html rename to packages/enketo-core/docs/js_readonly.js.html diff --git a/enketo-core/docs/js_relevant.js.html b/packages/enketo-core/docs/js_relevant.js.html similarity index 100% rename from enketo-core/docs/js_relevant.js.html rename to packages/enketo-core/docs/js_relevant.js.html diff --git a/enketo-core/docs/js_repeat.js.html b/packages/enketo-core/docs/js_repeat.js.html similarity index 100% rename from enketo-core/docs/js_repeat.js.html rename to packages/enketo-core/docs/js_repeat.js.html diff --git a/enketo-core/docs/js_required.js.html b/packages/enketo-core/docs/js_required.js.html similarity index 100% rename from enketo-core/docs/js_required.js.html rename to packages/enketo-core/docs/js_required.js.html diff --git a/enketo-core/docs/js_sniffer.js.html b/packages/enketo-core/docs/js_sniffer.js.html similarity index 100% rename from enketo-core/docs/js_sniffer.js.html rename to packages/enketo-core/docs/js_sniffer.js.html diff --git a/enketo-core/docs/js_support.js.html b/packages/enketo-core/docs/js_support.js.html similarity index 100% rename from enketo-core/docs/js_support.js.html rename to packages/enketo-core/docs/js_support.js.html diff --git a/enketo-core/docs/js_toc.js.html b/packages/enketo-core/docs/js_toc.js.html similarity index 100% rename from enketo-core/docs/js_toc.js.html rename to packages/enketo-core/docs/js_toc.js.html diff --git a/enketo-core/docs/js_translated-error.js.html b/packages/enketo-core/docs/js_translated-error.js.html similarity index 100% rename from enketo-core/docs/js_translated-error.js.html rename to packages/enketo-core/docs/js_translated-error.js.html diff --git a/enketo-core/docs/js_type-def.js.html b/packages/enketo-core/docs/js_type-def.js.html similarity index 100% rename from enketo-core/docs/js_type-def.js.html rename to packages/enketo-core/docs/js_type-def.js.html diff --git a/enketo-core/docs/js_types.js.html b/packages/enketo-core/docs/js_types.js.html similarity index 100% rename from enketo-core/docs/js_types.js.html rename to packages/enketo-core/docs/js_types.js.html diff --git a/enketo-core/docs/js_utils.js.html b/packages/enketo-core/docs/js_utils.js.html similarity index 100% rename from enketo-core/docs/js_utils.js.html rename to packages/enketo-core/docs/js_utils.js.html diff --git a/enketo-core/docs/js_widget.js.html b/packages/enketo-core/docs/js_widget.js.html similarity index 100% rename from enketo-core/docs/js_widget.js.html rename to packages/enketo-core/docs/js_widget.js.html diff --git a/enketo-core/docs/js_widgets-controller.js.html b/packages/enketo-core/docs/js_widgets-controller.js.html similarity index 100% rename from enketo-core/docs/js_widgets-controller.js.html rename to packages/enketo-core/docs/js_widgets-controller.js.html diff --git a/enketo-core/docs/js_widgets.js.html b/packages/enketo-core/docs/js_widgets.js.html similarity index 100% rename from enketo-core/docs/js_widgets.js.html rename to packages/enketo-core/docs/js_widgets.js.html diff --git a/enketo-core/docs/js_xpath-evaluator-binding.js.html b/packages/enketo-core/docs/js_xpath-evaluator-binding.js.html similarity index 100% rename from enketo-core/docs/js_xpath-evaluator-binding.js.html rename to packages/enketo-core/docs/js_xpath-evaluator-binding.js.html diff --git a/enketo-core/docs/module-calculate.html b/packages/enketo-core/docs/module-calculate.html similarity index 100% rename from enketo-core/docs/module-calculate.html rename to packages/enketo-core/docs/module-calculate.html diff --git a/enketo-core/docs/module-dialog.html b/packages/enketo-core/docs/module-dialog.html similarity index 100% rename from enketo-core/docs/module-dialog.html rename to packages/enketo-core/docs/module-dialog.html diff --git a/enketo-core/docs/module-dom-utils-elementDataStore.html b/packages/enketo-core/docs/module-dom-utils-elementDataStore.html similarity index 100% rename from enketo-core/docs/module-dom-utils-elementDataStore.html rename to packages/enketo-core/docs/module-dom-utils-elementDataStore.html diff --git a/enketo-core/docs/module-dom-utils.html b/packages/enketo-core/docs/module-dom-utils.html similarity index 100% rename from enketo-core/docs/module-dom-utils.html rename to packages/enketo-core/docs/module-dom-utils.html diff --git a/enketo-core/docs/module-event.html b/packages/enketo-core/docs/module-event.html similarity index 100% rename from enketo-core/docs/module-event.html rename to packages/enketo-core/docs/module-event.html diff --git a/enketo-core/docs/module-fake-translator.html b/packages/enketo-core/docs/module-fake-translator.html similarity index 100% rename from enketo-core/docs/module-fake-translator.html rename to packages/enketo-core/docs/module-fake-translator.html diff --git a/enketo-core/docs/module-fileManager.html b/packages/enketo-core/docs/module-fileManager.html similarity index 100% rename from enketo-core/docs/module-fileManager.html rename to packages/enketo-core/docs/module-fileManager.html diff --git a/enketo-core/docs/module-format-format.html b/packages/enketo-core/docs/module-format-format.html similarity index 100% rename from enketo-core/docs/module-format-format.html rename to packages/enketo-core/docs/module-format-format.html diff --git a/enketo-core/docs/module-format-time.html b/packages/enketo-core/docs/module-format-time.html similarity index 100% rename from enketo-core/docs/module-format-time.html rename to packages/enketo-core/docs/module-format-time.html diff --git a/enketo-core/docs/module-format.html b/packages/enketo-core/docs/module-format.html similarity index 100% rename from enketo-core/docs/module-format.html rename to packages/enketo-core/docs/module-format.html diff --git a/enketo-core/docs/module-input.html b/packages/enketo-core/docs/module-input.html similarity index 100% rename from enketo-core/docs/module-input.html rename to packages/enketo-core/docs/module-input.html diff --git a/enketo-core/docs/module-itemset.html b/packages/enketo-core/docs/module-itemset.html similarity index 100% rename from enketo-core/docs/module-itemset.html rename to packages/enketo-core/docs/module-itemset.html diff --git a/enketo-core/docs/module-language.html b/packages/enketo-core/docs/module-language.html similarity index 100% rename from enketo-core/docs/module-language.html rename to packages/enketo-core/docs/module-language.html diff --git a/enketo-core/docs/module-mask.html b/packages/enketo-core/docs/module-mask.html similarity index 100% rename from enketo-core/docs/module-mask.html rename to packages/enketo-core/docs/module-mask.html diff --git a/enketo-core/docs/module-output.html b/packages/enketo-core/docs/module-output.html similarity index 100% rename from enketo-core/docs/module-output.html rename to packages/enketo-core/docs/module-output.html diff --git a/enketo-core/docs/module-pages.html b/packages/enketo-core/docs/module-pages.html similarity index 100% rename from enketo-core/docs/module-pages.html rename to packages/enketo-core/docs/module-pages.html diff --git a/enketo-core/docs/module-preloader.html b/packages/enketo-core/docs/module-preloader.html similarity index 100% rename from enketo-core/docs/module-preloader.html rename to packages/enketo-core/docs/module-preloader.html diff --git a/enketo-core/docs/module-print.html b/packages/enketo-core/docs/module-print.html similarity index 100% rename from enketo-core/docs/module-print.html rename to packages/enketo-core/docs/module-print.html diff --git a/enketo-core/docs/module-progress.html b/packages/enketo-core/docs/module-progress.html similarity index 100% rename from enketo-core/docs/module-progress.html rename to packages/enketo-core/docs/module-progress.html diff --git a/enketo-core/docs/module-readonly.html b/packages/enketo-core/docs/module-readonly.html similarity index 100% rename from enketo-core/docs/module-readonly.html rename to packages/enketo-core/docs/module-readonly.html diff --git a/enketo-core/docs/module-relevant.html b/packages/enketo-core/docs/module-relevant.html similarity index 100% rename from enketo-core/docs/module-relevant.html rename to packages/enketo-core/docs/module-relevant.html diff --git a/enketo-core/docs/module-repeat.html b/packages/enketo-core/docs/module-repeat.html similarity index 100% rename from enketo-core/docs/module-repeat.html rename to packages/enketo-core/docs/module-repeat.html diff --git a/enketo-core/docs/module-required.html b/packages/enketo-core/docs/module-required.html similarity index 100% rename from enketo-core/docs/module-required.html rename to packages/enketo-core/docs/module-required.html diff --git a/enketo-core/docs/module-sniffer-browser.html b/packages/enketo-core/docs/module-sniffer-browser.html similarity index 100% rename from enketo-core/docs/module-sniffer-browser.html rename to packages/enketo-core/docs/module-sniffer-browser.html diff --git a/enketo-core/docs/module-sniffer-os.html b/packages/enketo-core/docs/module-sniffer-os.html similarity index 100% rename from enketo-core/docs/module-sniffer-os.html rename to packages/enketo-core/docs/module-sniffer-os.html diff --git a/enketo-core/docs/module-sniffer.html b/packages/enketo-core/docs/module-sniffer.html similarity index 100% rename from enketo-core/docs/module-sniffer.html rename to packages/enketo-core/docs/module-sniffer.html diff --git a/enketo-core/docs/module-support.html b/packages/enketo-core/docs/module-support.html similarity index 100% rename from enketo-core/docs/module-support.html rename to packages/enketo-core/docs/module-support.html diff --git a/enketo-core/docs/module-toc.html b/packages/enketo-core/docs/module-toc.html similarity index 100% rename from enketo-core/docs/module-toc.html rename to packages/enketo-core/docs/module-toc.html diff --git a/enketo-core/docs/module-types-types.barcode.html b/packages/enketo-core/docs/module-types-types.barcode.html similarity index 100% rename from enketo-core/docs/module-types-types.barcode.html rename to packages/enketo-core/docs/module-types-types.barcode.html diff --git a/enketo-core/docs/module-types-types.binary.html b/packages/enketo-core/docs/module-types-types.binary.html similarity index 100% rename from enketo-core/docs/module-types-types.binary.html rename to packages/enketo-core/docs/module-types-types.binary.html diff --git a/enketo-core/docs/module-types-types.date.html b/packages/enketo-core/docs/module-types-types.date.html similarity index 100% rename from enketo-core/docs/module-types-types.date.html rename to packages/enketo-core/docs/module-types-types.date.html diff --git a/enketo-core/docs/module-types-types.datetime.html b/packages/enketo-core/docs/module-types-types.datetime.html similarity index 100% rename from enketo-core/docs/module-types-types.datetime.html rename to packages/enketo-core/docs/module-types-types.datetime.html diff --git a/enketo-core/docs/module-types-types.decimal.html b/packages/enketo-core/docs/module-types-types.decimal.html similarity index 100% rename from enketo-core/docs/module-types-types.decimal.html rename to packages/enketo-core/docs/module-types-types.decimal.html diff --git a/enketo-core/docs/module-types-types.geopoint.html b/packages/enketo-core/docs/module-types-types.geopoint.html similarity index 100% rename from enketo-core/docs/module-types-types.geopoint.html rename to packages/enketo-core/docs/module-types-types.geopoint.html diff --git a/enketo-core/docs/module-types-types.geoshape.html b/packages/enketo-core/docs/module-types-types.geoshape.html similarity index 100% rename from enketo-core/docs/module-types-types.geoshape.html rename to packages/enketo-core/docs/module-types-types.geoshape.html diff --git a/enketo-core/docs/module-types-types.geotrace.html b/packages/enketo-core/docs/module-types-types.geotrace.html similarity index 100% rename from enketo-core/docs/module-types-types.geotrace.html rename to packages/enketo-core/docs/module-types-types.geotrace.html diff --git a/enketo-core/docs/module-types-types.html b/packages/enketo-core/docs/module-types-types.html similarity index 100% rename from enketo-core/docs/module-types-types.html rename to packages/enketo-core/docs/module-types-types.html diff --git a/enketo-core/docs/module-types-types.int.html b/packages/enketo-core/docs/module-types-types.int.html similarity index 100% rename from enketo-core/docs/module-types-types.int.html rename to packages/enketo-core/docs/module-types-types.int.html diff --git a/enketo-core/docs/module-types-types.select.html b/packages/enketo-core/docs/module-types-types.select.html similarity index 100% rename from enketo-core/docs/module-types-types.select.html rename to packages/enketo-core/docs/module-types-types.select.html diff --git a/enketo-core/docs/module-types-types.select1.html b/packages/enketo-core/docs/module-types-types.select1.html similarity index 100% rename from enketo-core/docs/module-types-types.select1.html rename to packages/enketo-core/docs/module-types-types.select1.html diff --git a/enketo-core/docs/module-types-types.string.html b/packages/enketo-core/docs/module-types-types.string.html similarity index 100% rename from enketo-core/docs/module-types-types.string.html rename to packages/enketo-core/docs/module-types-types.string.html diff --git a/enketo-core/docs/module-types-types.time.html b/packages/enketo-core/docs/module-types-types.time.html similarity index 100% rename from enketo-core/docs/module-types-types.time.html rename to packages/enketo-core/docs/module-types-types.time.html diff --git a/enketo-core/docs/module-types.html b/packages/enketo-core/docs/module-types.html similarity index 100% rename from enketo-core/docs/module-types.html rename to packages/enketo-core/docs/module-types.html diff --git a/enketo-core/docs/module-utils.html b/packages/enketo-core/docs/module-utils.html similarity index 100% rename from enketo-core/docs/module-utils.html rename to packages/enketo-core/docs/module-utils.html diff --git a/enketo-core/docs/module-widgets-controller-Collection.html b/packages/enketo-core/docs/module-widgets-controller-Collection.html similarity index 100% rename from enketo-core/docs/module-widgets-controller-Collection.html rename to packages/enketo-core/docs/module-widgets-controller-Collection.html diff --git a/enketo-core/docs/module-widgets-controller.html b/packages/enketo-core/docs/module-widgets-controller.html similarity index 100% rename from enketo-core/docs/module-widgets-controller.html rename to packages/enketo-core/docs/module-widgets-controller.html diff --git a/enketo-core/docs/module-widgets.html b/packages/enketo-core/docs/module-widgets.html similarity index 100% rename from enketo-core/docs/module-widgets.html rename to packages/enketo-core/docs/module-widgets.html diff --git a/enketo-core/docs/scripts/collapse.js b/packages/enketo-core/docs/scripts/collapse.js similarity index 100% rename from enketo-core/docs/scripts/collapse.js rename to packages/enketo-core/docs/scripts/collapse.js diff --git a/enketo-core/docs/scripts/linenumber.js b/packages/enketo-core/docs/scripts/linenumber.js similarity index 100% rename from enketo-core/docs/scripts/linenumber.js rename to packages/enketo-core/docs/scripts/linenumber.js diff --git a/enketo-core/docs/scripts/nav.js b/packages/enketo-core/docs/scripts/nav.js similarity index 100% rename from enketo-core/docs/scripts/nav.js rename to packages/enketo-core/docs/scripts/nav.js diff --git a/enketo-core/docs/scripts/polyfill.js b/packages/enketo-core/docs/scripts/polyfill.js similarity index 100% rename from enketo-core/docs/scripts/polyfill.js rename to packages/enketo-core/docs/scripts/polyfill.js diff --git a/enketo-core/docs/scripts/prettify/Apache-License-2.0.txt b/packages/enketo-core/docs/scripts/prettify/Apache-License-2.0.txt similarity index 100% rename from enketo-core/docs/scripts/prettify/Apache-License-2.0.txt rename to packages/enketo-core/docs/scripts/prettify/Apache-License-2.0.txt diff --git a/enketo-core/docs/scripts/prettify/lang-css.js b/packages/enketo-core/docs/scripts/prettify/lang-css.js similarity index 100% rename from enketo-core/docs/scripts/prettify/lang-css.js rename to packages/enketo-core/docs/scripts/prettify/lang-css.js diff --git a/enketo-core/docs/scripts/prettify/prettify.js b/packages/enketo-core/docs/scripts/prettify/prettify.js similarity index 100% rename from enketo-core/docs/scripts/prettify/prettify.js rename to packages/enketo-core/docs/scripts/prettify/prettify.js diff --git a/enketo-core/docs/scripts/search.js b/packages/enketo-core/docs/scripts/search.js similarity index 100% rename from enketo-core/docs/scripts/search.js rename to packages/enketo-core/docs/scripts/search.js diff --git a/enketo-core/docs/styles/jsdoc.css b/packages/enketo-core/docs/styles/jsdoc.css similarity index 100% rename from enketo-core/docs/styles/jsdoc.css rename to packages/enketo-core/docs/styles/jsdoc.css diff --git a/enketo-core/docs/styles/prettify.css b/packages/enketo-core/docs/styles/prettify.css similarity index 100% rename from enketo-core/docs/styles/prettify.css rename to packages/enketo-core/docs/styles/prettify.css diff --git a/enketo-core/docs/tutorial-00-getting-started.html b/packages/enketo-core/docs/tutorial-00-getting-started.html similarity index 100% rename from enketo-core/docs/tutorial-00-getting-started.html rename to packages/enketo-core/docs/tutorial-00-getting-started.html diff --git a/enketo-core/docs/tutorial-10-configuration.html b/packages/enketo-core/docs/tutorial-10-configuration.html similarity index 100% rename from enketo-core/docs/tutorial-10-configuration.html rename to packages/enketo-core/docs/tutorial-10-configuration.html diff --git a/enketo-core/docs/tutorial-20-development.html b/packages/enketo-core/docs/tutorial-20-development.html similarity index 100% rename from enketo-core/docs/tutorial-20-development.html rename to packages/enketo-core/docs/tutorial-20-development.html diff --git a/enketo-core/docs/tutorial-30-events.html b/packages/enketo-core/docs/tutorial-30-events.html similarity index 100% rename from enketo-core/docs/tutorial-30-events.html rename to packages/enketo-core/docs/tutorial-30-events.html diff --git a/enketo-core/docs/tutorial-40-widgets.html b/packages/enketo-core/docs/tutorial-40-widgets.html similarity index 100% rename from enketo-core/docs/tutorial-40-widgets.html rename to packages/enketo-core/docs/tutorial-40-widgets.html diff --git a/enketo-core/docs/tutorial-90-ie11.html b/packages/enketo-core/docs/tutorial-90-ie11.html similarity index 100% rename from enketo-core/docs/tutorial-90-ie11.html rename to packages/enketo-core/docs/tutorial-90-ie11.html diff --git a/enketo-core/docs/widget_analog-scale_analog-scalepicker.js.html b/packages/enketo-core/docs/widget_analog-scale_analog-scalepicker.js.html similarity index 100% rename from enketo-core/docs/widget_analog-scale_analog-scalepicker.js.html rename to packages/enketo-core/docs/widget_analog-scale_analog-scalepicker.js.html diff --git a/enketo-core/docs/widget_big-image_image-viewer.js.html b/packages/enketo-core/docs/widget_big-image_image-viewer.js.html similarity index 100% rename from enketo-core/docs/widget_big-image_image-viewer.js.html rename to packages/enketo-core/docs/widget_big-image_image-viewer.js.html diff --git a/enketo-core/docs/widget_columns_columns.js.html b/packages/enketo-core/docs/widget_columns_columns.js.html similarity index 100% rename from enketo-core/docs/widget_columns_columns.js.html rename to packages/enketo-core/docs/widget_columns_columns.js.html diff --git a/enketo-core/docs/widget_comment_commentwidget.js.html b/packages/enketo-core/docs/widget_comment_commentwidget.js.html similarity index 100% rename from enketo-core/docs/widget_comment_commentwidget.js.html rename to packages/enketo-core/docs/widget_comment_commentwidget.js.html diff --git a/enketo-core/docs/widget_date-mobile_datepicker-mobile.js.html b/packages/enketo-core/docs/widget_date-mobile_datepicker-mobile.js.html similarity index 100% rename from enketo-core/docs/widget_date-mobile_datepicker-mobile.js.html rename to packages/enketo-core/docs/widget_date-mobile_datepicker-mobile.js.html diff --git a/enketo-core/docs/widget_date-native-ios_datepicker-native-ios.js.html b/packages/enketo-core/docs/widget_date-native-ios_datepicker-native-ios.js.html similarity index 100% rename from enketo-core/docs/widget_date-native-ios_datepicker-native-ios.js.html rename to packages/enketo-core/docs/widget_date-native-ios_datepicker-native-ios.js.html diff --git a/enketo-core/docs/widget_date-native_datepicker-native.js.html b/packages/enketo-core/docs/widget_date-native_datepicker-native.js.html similarity index 100% rename from enketo-core/docs/widget_date-native_datepicker-native.js.html rename to packages/enketo-core/docs/widget_date-native_datepicker-native.js.html diff --git a/enketo-core/docs/widget_date_datepicker-extended.js.html b/packages/enketo-core/docs/widget_date_datepicker-extended.js.html similarity index 100% rename from enketo-core/docs/widget_date_datepicker-extended.js.html rename to packages/enketo-core/docs/widget_date_datepicker-extended.js.html diff --git a/enketo-core/docs/widget_datetime_datetimepicker-extended.js.html b/packages/enketo-core/docs/widget_datetime_datetimepicker-extended.js.html similarity index 100% rename from enketo-core/docs/widget_datetime_datetimepicker-extended.js.html rename to packages/enketo-core/docs/widget_datetime_datetimepicker-extended.js.html diff --git a/enketo-core/docs/widget_draw_draw-widget.js.html b/packages/enketo-core/docs/widget_draw_draw-widget.js.html similarity index 100% rename from enketo-core/docs/widget_draw_draw-widget.js.html rename to packages/enketo-core/docs/widget_draw_draw-widget.js.html diff --git a/enketo-core/docs/widget_example_my-widget.js.html b/packages/enketo-core/docs/widget_example_my-widget.js.html similarity index 100% rename from enketo-core/docs/widget_example_my-widget.js.html rename to packages/enketo-core/docs/widget_example_my-widget.js.html diff --git a/enketo-core/docs/widget_file_filepicker.js.html b/packages/enketo-core/docs/widget_file_filepicker.js.html similarity index 100% rename from enketo-core/docs/widget_file_filepicker.js.html rename to packages/enketo-core/docs/widget_file_filepicker.js.html diff --git a/enketo-core/docs/widget_geo_geopicker.js.html b/packages/enketo-core/docs/widget_geo_geopicker.js.html similarity index 100% rename from enketo-core/docs/widget_geo_geopicker.js.html rename to packages/enketo-core/docs/widget_geo_geopicker.js.html diff --git a/enketo-core/docs/widget_image-map_image-map.js.html b/packages/enketo-core/docs/widget_image-map_image-map.js.html similarity index 100% rename from enketo-core/docs/widget_image-map_image-map.js.html rename to packages/enketo-core/docs/widget_image-map_image-map.js.html diff --git a/enketo-core/docs/widget_note_notewidget.js.html b/packages/enketo-core/docs/widget_note_notewidget.js.html similarity index 100% rename from enketo-core/docs/widget_note_notewidget.js.html rename to packages/enketo-core/docs/widget_note_notewidget.js.html diff --git a/enketo-core/docs/widget_radio_radiopicker.js.html b/packages/enketo-core/docs/widget_radio_radiopicker.js.html similarity index 100% rename from enketo-core/docs/widget_radio_radiopicker.js.html rename to packages/enketo-core/docs/widget_radio_radiopicker.js.html diff --git a/enketo-core/docs/widget_range_range-widget.js.html b/packages/enketo-core/docs/widget_range_range-widget.js.html similarity index 100% rename from enketo-core/docs/widget_range_range-widget.js.html rename to packages/enketo-core/docs/widget_range_range-widget.js.html diff --git a/enketo-core/docs/widget_rank_rank-widget.js.html b/packages/enketo-core/docs/widget_rank_rank-widget.js.html similarity index 100% rename from enketo-core/docs/widget_rank_rank-widget.js.html rename to packages/enketo-core/docs/widget_rank_rank-widget.js.html diff --git a/enketo-core/docs/widget_rating_rating.js.html b/packages/enketo-core/docs/widget_rating_rating.js.html similarity index 100% rename from enketo-core/docs/widget_rating_rating.js.html rename to packages/enketo-core/docs/widget_rating_rating.js.html diff --git a/enketo-core/docs/widget_select-autocomplete_autocomplete.js.html b/packages/enketo-core/docs/widget_select-autocomplete_autocomplete.js.html similarity index 100% rename from enketo-core/docs/widget_select-autocomplete_autocomplete.js.html rename to packages/enketo-core/docs/widget_select-autocomplete_autocomplete.js.html diff --git a/enketo-core/docs/widget_select-desktop_selectpicker.js.html b/packages/enketo-core/docs/widget_select-desktop_selectpicker.js.html similarity index 100% rename from enketo-core/docs/widget_select-desktop_selectpicker.js.html rename to packages/enketo-core/docs/widget_select-desktop_selectpicker.js.html diff --git a/enketo-core/docs/widget_select-likert_likertitem.js.html b/packages/enketo-core/docs/widget_select-likert_likertitem.js.html similarity index 100% rename from enketo-core/docs/widget_select-likert_likertitem.js.html rename to packages/enketo-core/docs/widget_select-likert_likertitem.js.html diff --git a/enketo-core/docs/widget_select-media_select-media.js.html b/packages/enketo-core/docs/widget_select-media_select-media.js.html similarity index 100% rename from enketo-core/docs/widget_select-media_select-media.js.html rename to packages/enketo-core/docs/widget_select-media_select-media.js.html diff --git a/enketo-core/docs/widget_select-mobile_selectpicker.js.html b/packages/enketo-core/docs/widget_select-mobile_selectpicker.js.html similarity index 100% rename from enketo-core/docs/widget_select-mobile_selectpicker.js.html rename to packages/enketo-core/docs/widget_select-mobile_selectpicker.js.html diff --git a/enketo-core/docs/widget_table_tablewidget.js.html b/packages/enketo-core/docs/widget_table_tablewidget.js.html similarity index 100% rename from enketo-core/docs/widget_table_tablewidget.js.html rename to packages/enketo-core/docs/widget_table_tablewidget.js.html diff --git a/enketo-core/docs/widget_text-max_text-max.js.html b/packages/enketo-core/docs/widget_text-max_text-max.js.html similarity index 100% rename from enketo-core/docs/widget_text-max_text-max.js.html rename to packages/enketo-core/docs/widget_text-max_text-max.js.html diff --git a/enketo-core/docs/widget_text-print_text-print.js.html b/packages/enketo-core/docs/widget_text-print_text-print.js.html similarity index 100% rename from enketo-core/docs/widget_text-print_text-print.js.html rename to packages/enketo-core/docs/widget_text-print_text-print.js.html diff --git a/enketo-core/docs/widget_textarea_textarea.js.html b/packages/enketo-core/docs/widget_textarea_textarea.js.html similarity index 100% rename from enketo-core/docs/widget_textarea_textarea.js.html rename to packages/enketo-core/docs/widget_textarea_textarea.js.html diff --git a/enketo-core/docs/widget_thousands-sep_thousands-sep.js.html b/packages/enketo-core/docs/widget_thousands-sep_thousands-sep.js.html similarity index 100% rename from enketo-core/docs/widget_thousands-sep_thousands-sep.js.html rename to packages/enketo-core/docs/widget_thousands-sep_thousands-sep.js.html diff --git a/enketo-core/docs/widget_time_timepicker-extended.js.html b/packages/enketo-core/docs/widget_time_timepicker-extended.js.html similarity index 100% rename from enketo-core/docs/widget_time_timepicker-extended.js.html rename to packages/enketo-core/docs/widget_time_timepicker-extended.js.html diff --git a/enketo-core/docs/widget_time_timepicker.js.html b/packages/enketo-core/docs/widget_time_timepicker.js.html similarity index 100% rename from enketo-core/docs/widget_time_timepicker.js.html rename to packages/enketo-core/docs/widget_time_timepicker.js.html diff --git a/enketo-core/docs/widget_url_url-widget.js.html b/packages/enketo-core/docs/widget_url_url-widget.js.html similarity index 100% rename from enketo-core/docs/widget_url_url-widget.js.html rename to packages/enketo-core/docs/widget_url_url-widget.js.html diff --git a/enketo-core/jsconfig.json b/packages/enketo-core/jsconfig.json similarity index 100% rename from enketo-core/jsconfig.json rename to packages/enketo-core/jsconfig.json diff --git a/enketo-core/jsdoc.config.js b/packages/enketo-core/jsdoc.config.js similarity index 100% rename from enketo-core/jsdoc.config.js rename to packages/enketo-core/jsdoc.config.js diff --git a/enketo-core/package-lock.json b/packages/enketo-core/package-lock.json similarity index 100% rename from enketo-core/package-lock.json rename to packages/enketo-core/package-lock.json diff --git a/enketo-core/package.json b/packages/enketo-core/package.json similarity index 100% rename from enketo-core/package.json rename to packages/enketo-core/package.json diff --git a/enketo-core/scripts/build.js b/packages/enketo-core/scripts/build.js similarity index 100% rename from enketo-core/scripts/build.js rename to packages/enketo-core/scripts/build.js diff --git a/enketo-core/scripts/preinstall b/packages/enketo-core/scripts/preinstall similarity index 100% rename from enketo-core/scripts/preinstall rename to packages/enketo-core/scripts/preinstall diff --git a/enketo-core/src/index.html b/packages/enketo-core/src/index.html similarity index 100% rename from enketo-core/src/index.html rename to packages/enketo-core/src/index.html diff --git a/enketo-core/src/js/calculate.js b/packages/enketo-core/src/js/calculate.js similarity index 100% rename from enketo-core/src/js/calculate.js rename to packages/enketo-core/src/js/calculate.js diff --git a/enketo-core/src/js/dom-utils.js b/packages/enketo-core/src/js/dom-utils.js similarity index 100% rename from enketo-core/src/js/dom-utils.js rename to packages/enketo-core/src/js/dom-utils.js diff --git a/enketo-core/src/js/download-utils.js b/packages/enketo-core/src/js/download-utils.js similarity index 100% rename from enketo-core/src/js/download-utils.js rename to packages/enketo-core/src/js/download-utils.js diff --git a/enketo-core/src/js/dropdown.jquery.js b/packages/enketo-core/src/js/dropdown.jquery.js similarity index 100% rename from enketo-core/src/js/dropdown.jquery.js rename to packages/enketo-core/src/js/dropdown.jquery.js diff --git a/enketo-core/src/js/event.js b/packages/enketo-core/src/js/event.js similarity index 100% rename from enketo-core/src/js/event.js rename to packages/enketo-core/src/js/event.js diff --git a/enketo-core/src/js/extend.js b/packages/enketo-core/src/js/extend.js similarity index 100% rename from enketo-core/src/js/extend.js rename to packages/enketo-core/src/js/extend.js diff --git a/enketo-core/src/js/fake-dialog.js b/packages/enketo-core/src/js/fake-dialog.js similarity index 100% rename from enketo-core/src/js/fake-dialog.js rename to packages/enketo-core/src/js/fake-dialog.js diff --git a/enketo-core/src/js/fake-translator.js b/packages/enketo-core/src/js/fake-translator.js similarity index 100% rename from enketo-core/src/js/fake-translator.js rename to packages/enketo-core/src/js/fake-translator.js diff --git a/enketo-core/src/js/file-manager.js b/packages/enketo-core/src/js/file-manager.js similarity index 100% rename from enketo-core/src/js/file-manager.js rename to packages/enketo-core/src/js/file-manager.js diff --git a/enketo-core/src/js/form-logic-error.js b/packages/enketo-core/src/js/form-logic-error.js similarity index 100% rename from enketo-core/src/js/form-logic-error.js rename to packages/enketo-core/src/js/form-logic-error.js diff --git a/enketo-core/src/js/form-model.js b/packages/enketo-core/src/js/form-model.js similarity index 100% rename from enketo-core/src/js/form-model.js rename to packages/enketo-core/src/js/form-model.js diff --git a/enketo-core/src/js/form.js b/packages/enketo-core/src/js/form.js similarity index 100% rename from enketo-core/src/js/form.js rename to packages/enketo-core/src/js/form.js diff --git a/enketo-core/src/js/format.js b/packages/enketo-core/src/js/format.js similarity index 100% rename from enketo-core/src/js/format.js rename to packages/enketo-core/src/js/format.js diff --git a/enketo-core/src/js/geolocation.js b/packages/enketo-core/src/js/geolocation.js similarity index 100% rename from enketo-core/src/js/geolocation.js rename to packages/enketo-core/src/js/geolocation.js diff --git a/enketo-core/src/js/input.js b/packages/enketo-core/src/js/input.js similarity index 100% rename from enketo-core/src/js/input.js rename to packages/enketo-core/src/js/input.js diff --git a/enketo-core/src/js/itemset.js b/packages/enketo-core/src/js/itemset.js similarity index 100% rename from enketo-core/src/js/itemset.js rename to packages/enketo-core/src/js/itemset.js diff --git a/enketo-core/src/js/language.js b/packages/enketo-core/src/js/language.js similarity index 100% rename from enketo-core/src/js/language.js rename to packages/enketo-core/src/js/language.js diff --git a/enketo-core/src/js/mask.js b/packages/enketo-core/src/js/mask.js similarity index 100% rename from enketo-core/src/js/mask.js rename to packages/enketo-core/src/js/mask.js diff --git a/enketo-core/src/js/nodeset.js b/packages/enketo-core/src/js/nodeset.js similarity index 100% rename from enketo-core/src/js/nodeset.js rename to packages/enketo-core/src/js/nodeset.js diff --git a/enketo-core/src/js/obscure-ie11-polyfills.js b/packages/enketo-core/src/js/obscure-ie11-polyfills.js similarity index 100% rename from enketo-core/src/js/obscure-ie11-polyfills.js rename to packages/enketo-core/src/js/obscure-ie11-polyfills.js diff --git a/enketo-core/src/js/output.js b/packages/enketo-core/src/js/output.js similarity index 100% rename from enketo-core/src/js/output.js rename to packages/enketo-core/src/js/output.js diff --git a/enketo-core/src/js/page.js b/packages/enketo-core/src/js/page.js similarity index 100% rename from enketo-core/src/js/page.js rename to packages/enketo-core/src/js/page.js diff --git a/enketo-core/src/js/plugins.js b/packages/enketo-core/src/js/plugins.js similarity index 100% rename from enketo-core/src/js/plugins.js rename to packages/enketo-core/src/js/plugins.js diff --git a/enketo-core/src/js/preload.js b/packages/enketo-core/src/js/preload.js similarity index 100% rename from enketo-core/src/js/preload.js rename to packages/enketo-core/src/js/preload.js diff --git a/enketo-core/src/js/print.js b/packages/enketo-core/src/js/print.js similarity index 100% rename from enketo-core/src/js/print.js rename to packages/enketo-core/src/js/print.js diff --git a/enketo-core/src/js/progress.js b/packages/enketo-core/src/js/progress.js similarity index 100% rename from enketo-core/src/js/progress.js rename to packages/enketo-core/src/js/progress.js diff --git a/enketo-core/src/js/readonly.js b/packages/enketo-core/src/js/readonly.js similarity index 100% rename from enketo-core/src/js/readonly.js rename to packages/enketo-core/src/js/readonly.js diff --git a/enketo-core/src/js/relevant.js b/packages/enketo-core/src/js/relevant.js similarity index 100% rename from enketo-core/src/js/relevant.js rename to packages/enketo-core/src/js/relevant.js diff --git a/enketo-core/src/js/repeat.js b/packages/enketo-core/src/js/repeat.js similarity index 100% rename from enketo-core/src/js/repeat.js rename to packages/enketo-core/src/js/repeat.js diff --git a/enketo-core/src/js/required.js b/packages/enketo-core/src/js/required.js similarity index 100% rename from enketo-core/src/js/required.js rename to packages/enketo-core/src/js/required.js diff --git a/enketo-core/src/js/sniffer.js b/packages/enketo-core/src/js/sniffer.js similarity index 100% rename from enketo-core/src/js/sniffer.js rename to packages/enketo-core/src/js/sniffer.js diff --git a/enketo-core/src/js/support.js b/packages/enketo-core/src/js/support.js similarity index 100% rename from enketo-core/src/js/support.js rename to packages/enketo-core/src/js/support.js diff --git a/enketo-core/src/js/toc.js b/packages/enketo-core/src/js/toc.js similarity index 100% rename from enketo-core/src/js/toc.js rename to packages/enketo-core/src/js/toc.js diff --git a/enketo-core/src/js/translated-error.js b/packages/enketo-core/src/js/translated-error.js similarity index 100% rename from enketo-core/src/js/translated-error.js rename to packages/enketo-core/src/js/translated-error.js diff --git a/enketo-core/src/js/type-def.js b/packages/enketo-core/src/js/type-def.js similarity index 100% rename from enketo-core/src/js/type-def.js rename to packages/enketo-core/src/js/type-def.js diff --git a/enketo-core/src/js/types.js b/packages/enketo-core/src/js/types.js similarity index 100% rename from enketo-core/src/js/types.js rename to packages/enketo-core/src/js/types.js diff --git a/enketo-core/src/js/utils.js b/packages/enketo-core/src/js/utils.js similarity index 100% rename from enketo-core/src/js/utils.js rename to packages/enketo-core/src/js/utils.js diff --git a/enketo-core/src/js/widget.js b/packages/enketo-core/src/js/widget.js similarity index 100% rename from enketo-core/src/js/widget.js rename to packages/enketo-core/src/js/widget.js diff --git a/enketo-core/src/js/widgets-controller.js b/packages/enketo-core/src/js/widgets-controller.js similarity index 100% rename from enketo-core/src/js/widgets-controller.js rename to packages/enketo-core/src/js/widgets-controller.js diff --git a/enketo-core/src/js/widgets.js b/packages/enketo-core/src/js/widgets.js similarity index 100% rename from enketo-core/src/js/widgets.js rename to packages/enketo-core/src/js/widgets.js diff --git a/enketo-core/src/js/workarounds-ie11.js b/packages/enketo-core/src/js/workarounds-ie11.js similarity index 100% rename from enketo-core/src/js/workarounds-ie11.js rename to packages/enketo-core/src/js/workarounds-ie11.js diff --git a/enketo-core/src/js/xpath-evaluator-binding.js b/packages/enketo-core/src/js/xpath-evaluator-binding.js similarity index 100% rename from enketo-core/src/js/xpath-evaluator-binding.js rename to packages/enketo-core/src/js/xpath-evaluator-binding.js diff --git a/enketo-core/src/sass/core/_buttons.scss b/packages/enketo-core/src/sass/core/_buttons.scss similarity index 100% rename from enketo-core/src/sass/core/_buttons.scss rename to packages/enketo-core/src/sass/core/_buttons.scss diff --git a/enketo-core/src/sass/core/_dropdown.scss b/packages/enketo-core/src/sass/core/_dropdown.scss similarity index 100% rename from enketo-core/src/sass/core/_dropdown.scss rename to packages/enketo-core/src/sass/core/_dropdown.scss diff --git a/enketo-core/src/sass/core/_fonts.scss b/packages/enketo-core/src/sass/core/_fonts.scss similarity index 100% rename from enketo-core/src/sass/core/_fonts.scss rename to packages/enketo-core/src/sass/core/_fonts.scss diff --git a/enketo-core/src/sass/core/_icons.scss b/packages/enketo-core/src/sass/core/_icons.scss similarity index 100% rename from enketo-core/src/sass/core/_icons.scss rename to packages/enketo-core/src/sass/core/_icons.scss diff --git a/enketo-core/src/sass/core/_iefix.scss b/packages/enketo-core/src/sass/core/_iefix.scss similarity index 100% rename from enketo-core/src/sass/core/_iefix.scss rename to packages/enketo-core/src/sass/core/_iefix.scss diff --git a/enketo-core/src/sass/core/_layout.scss b/packages/enketo-core/src/sass/core/_layout.scss similarity index 100% rename from enketo-core/src/sass/core/_layout.scss rename to packages/enketo-core/src/sass/core/_layout.scss diff --git a/enketo-core/src/sass/core/_main.scss b/packages/enketo-core/src/sass/core/_main.scss similarity index 100% rename from enketo-core/src/sass/core/_main.scss rename to packages/enketo-core/src/sass/core/_main.scss diff --git a/enketo-core/src/sass/core/_mixins.scss b/packages/enketo-core/src/sass/core/_mixins.scss similarity index 100% rename from enketo-core/src/sass/core/_mixins.scss rename to packages/enketo-core/src/sass/core/_mixins.scss diff --git a/enketo-core/src/sass/core/_pages.scss b/packages/enketo-core/src/sass/core/_pages.scss similarity index 100% rename from enketo-core/src/sass/core/_pages.scss rename to packages/enketo-core/src/sass/core/_pages.scss diff --git a/enketo-core/src/sass/core/_print.scss b/packages/enketo-core/src/sass/core/_print.scss similarity index 100% rename from enketo-core/src/sass/core/_print.scss rename to packages/enketo-core/src/sass/core/_print.scss diff --git a/enketo-core/src/sass/core/_reset.scss b/packages/enketo-core/src/sass/core/_reset.scss similarity index 100% rename from enketo-core/src/sass/core/_reset.scss rename to packages/enketo-core/src/sass/core/_reset.scss diff --git a/enketo-core/src/sass/core/_responsive.scss b/packages/enketo-core/src/sass/core/_responsive.scss similarity index 100% rename from enketo-core/src/sass/core/_responsive.scss rename to packages/enketo-core/src/sass/core/_responsive.scss diff --git a/enketo-core/src/sass/core/_utilities.scss b/packages/enketo-core/src/sass/core/_utilities.scss similarity index 100% rename from enketo-core/src/sass/core/_utilities.scss rename to packages/enketo-core/src/sass/core/_utilities.scss diff --git a/enketo-core/src/sass/core/_variables.scss b/packages/enketo-core/src/sass/core/_variables.scss similarity index 100% rename from enketo-core/src/sass/core/_variables.scss rename to packages/enketo-core/src/sass/core/_variables.scss diff --git a/enketo-core/src/sass/core/_widgets.scss b/packages/enketo-core/src/sass/core/_widgets.scss similarity index 100% rename from enketo-core/src/sass/core/_widgets.scss rename to packages/enketo-core/src/sass/core/_widgets.scss diff --git a/enketo-core/src/sass/formhub/_form-controls.scss b/packages/enketo-core/src/sass/formhub/_form-controls.scss similarity index 100% rename from enketo-core/src/sass/formhub/_form-controls.scss rename to packages/enketo-core/src/sass/formhub/_form-controls.scss diff --git a/enketo-core/src/sass/formhub/_iefix.scss b/packages/enketo-core/src/sass/formhub/_iefix.scss similarity index 100% rename from enketo-core/src/sass/formhub/_iefix.scss rename to packages/enketo-core/src/sass/formhub/_iefix.scss diff --git a/enketo-core/src/sass/formhub/_main.scss b/packages/enketo-core/src/sass/formhub/_main.scss similarity index 100% rename from enketo-core/src/sass/formhub/_main.scss rename to packages/enketo-core/src/sass/formhub/_main.scss diff --git a/enketo-core/src/sass/formhub/_mixins.scss b/packages/enketo-core/src/sass/formhub/_mixins.scss similarity index 100% rename from enketo-core/src/sass/formhub/_mixins.scss rename to packages/enketo-core/src/sass/formhub/_mixins.scss diff --git a/enketo-core/src/sass/formhub/_print.scss b/packages/enketo-core/src/sass/formhub/_print.scss similarity index 100% rename from enketo-core/src/sass/formhub/_print.scss rename to packages/enketo-core/src/sass/formhub/_print.scss diff --git a/enketo-core/src/sass/formhub/_radiocheck.scss b/packages/enketo-core/src/sass/formhub/_radiocheck.scss similarity index 100% rename from enketo-core/src/sass/formhub/_radiocheck.scss rename to packages/enketo-core/src/sass/formhub/_radiocheck.scss diff --git a/enketo-core/src/sass/formhub/_variables.scss b/packages/enketo-core/src/sass/formhub/_variables.scss similarity index 100% rename from enketo-core/src/sass/formhub/_variables.scss rename to packages/enketo-core/src/sass/formhub/_variables.scss diff --git a/enketo-core/src/sass/formhub/_widgets.scss b/packages/enketo-core/src/sass/formhub/_widgets.scss similarity index 100% rename from enketo-core/src/sass/formhub/_widgets.scss rename to packages/enketo-core/src/sass/formhub/_widgets.scss diff --git a/enketo-core/src/sass/formhub/formhub-print.scss b/packages/enketo-core/src/sass/formhub/formhub-print.scss similarity index 100% rename from enketo-core/src/sass/formhub/formhub-print.scss rename to packages/enketo-core/src/sass/formhub/formhub-print.scss diff --git a/enketo-core/src/sass/formhub/formhub.scss b/packages/enketo-core/src/sass/formhub/formhub.scss similarity index 100% rename from enketo-core/src/sass/formhub/formhub.scss rename to packages/enketo-core/src/sass/formhub/formhub.scss diff --git a/enketo-core/src/sass/grid/README.md b/packages/enketo-core/src/sass/grid/README.md similarity index 100% rename from enketo-core/src/sass/grid/README.md rename to packages/enketo-core/src/sass/grid/README.md diff --git a/enketo-core/src/sass/grid/_iefix.scss b/packages/enketo-core/src/sass/grid/_iefix.scss similarity index 100% rename from enketo-core/src/sass/grid/_iefix.scss rename to packages/enketo-core/src/sass/grid/_iefix.scss diff --git a/enketo-core/src/sass/grid/_main.scss b/packages/enketo-core/src/sass/grid/_main.scss similarity index 100% rename from enketo-core/src/sass/grid/_main.scss rename to packages/enketo-core/src/sass/grid/_main.scss diff --git a/enketo-core/src/sass/grid/_mixins.scss b/packages/enketo-core/src/sass/grid/_mixins.scss similarity index 100% rename from enketo-core/src/sass/grid/_mixins.scss rename to packages/enketo-core/src/sass/grid/_mixins.scss diff --git a/enketo-core/src/sass/grid/_print.scss b/packages/enketo-core/src/sass/grid/_print.scss similarity index 100% rename from enketo-core/src/sass/grid/_print.scss rename to packages/enketo-core/src/sass/grid/_print.scss diff --git a/enketo-core/src/sass/grid/_variables.scss b/packages/enketo-core/src/sass/grid/_variables.scss similarity index 100% rename from enketo-core/src/sass/grid/_variables.scss rename to packages/enketo-core/src/sass/grid/_variables.scss diff --git a/enketo-core/src/sass/grid/_widgets.scss b/packages/enketo-core/src/sass/grid/_widgets.scss similarity index 100% rename from enketo-core/src/sass/grid/_widgets.scss rename to packages/enketo-core/src/sass/grid/_widgets.scss diff --git a/enketo-core/src/sass/grid/grid-print.scss b/packages/enketo-core/src/sass/grid/grid-print.scss similarity index 100% rename from enketo-core/src/sass/grid/grid-print.scss rename to packages/enketo-core/src/sass/grid/grid-print.scss diff --git a/enketo-core/src/sass/grid/grid.scss b/packages/enketo-core/src/sass/grid/grid.scss similarity index 100% rename from enketo-core/src/sass/grid/grid.scss rename to packages/enketo-core/src/sass/grid/grid.scss diff --git a/enketo-core/src/sass/plain/plain-print.scss b/packages/enketo-core/src/sass/plain/plain-print.scss similarity index 100% rename from enketo-core/src/sass/plain/plain-print.scss rename to packages/enketo-core/src/sass/plain/plain-print.scss diff --git a/enketo-core/src/sass/plain/plain.scss b/packages/enketo-core/src/sass/plain/plain.scss similarity index 100% rename from enketo-core/src/sass/plain/plain.scss rename to packages/enketo-core/src/sass/plain/plain.scss diff --git a/enketo-core/src/widget/analog-scale/analog-scalepicker.js b/packages/enketo-core/src/widget/analog-scale/analog-scalepicker.js similarity index 100% rename from enketo-core/src/widget/analog-scale/analog-scalepicker.js rename to packages/enketo-core/src/widget/analog-scale/analog-scalepicker.js diff --git a/enketo-core/src/widget/analog-scale/analog-scalepicker.scss b/packages/enketo-core/src/widget/analog-scale/analog-scalepicker.scss similarity index 100% rename from enketo-core/src/widget/analog-scale/analog-scalepicker.scss rename to packages/enketo-core/src/widget/analog-scale/analog-scalepicker.scss diff --git a/enketo-core/src/widget/big-image/image-viewer.js b/packages/enketo-core/src/widget/big-image/image-viewer.js similarity index 100% rename from enketo-core/src/widget/big-image/image-viewer.js rename to packages/enketo-core/src/widget/big-image/image-viewer.js diff --git a/enketo-core/src/widget/big-image/image-viewer.scss b/packages/enketo-core/src/widget/big-image/image-viewer.scss similarity index 100% rename from enketo-core/src/widget/big-image/image-viewer.scss rename to packages/enketo-core/src/widget/big-image/image-viewer.scss diff --git a/enketo-core/src/widget/columns/columns.js b/packages/enketo-core/src/widget/columns/columns.js similarity index 100% rename from enketo-core/src/widget/columns/columns.js rename to packages/enketo-core/src/widget/columns/columns.js diff --git a/enketo-core/src/widget/columns/columns.scss b/packages/enketo-core/src/widget/columns/columns.scss similarity index 100% rename from enketo-core/src/widget/columns/columns.scss rename to packages/enketo-core/src/widget/columns/columns.scss diff --git a/enketo-core/src/widget/comment/commentwidget.js b/packages/enketo-core/src/widget/comment/commentwidget.js similarity index 100% rename from enketo-core/src/widget/comment/commentwidget.js rename to packages/enketo-core/src/widget/comment/commentwidget.js diff --git a/enketo-core/src/widget/comment/commentwidget.scss b/packages/enketo-core/src/widget/comment/commentwidget.scss similarity index 100% rename from enketo-core/src/widget/comment/commentwidget.scss rename to packages/enketo-core/src/widget/comment/commentwidget.scss diff --git a/enketo-core/src/widget/date-mobile/datepicker-mobile.js b/packages/enketo-core/src/widget/date-mobile/datepicker-mobile.js similarity index 100% rename from enketo-core/src/widget/date-mobile/datepicker-mobile.js rename to packages/enketo-core/src/widget/date-mobile/datepicker-mobile.js diff --git a/enketo-core/src/widget/date-native-ios/datepicker-native-ios.js b/packages/enketo-core/src/widget/date-native-ios/datepicker-native-ios.js similarity index 100% rename from enketo-core/src/widget/date-native-ios/datepicker-native-ios.js rename to packages/enketo-core/src/widget/date-native-ios/datepicker-native-ios.js diff --git a/enketo-core/src/widget/date-native/datepicker-native.js b/packages/enketo-core/src/widget/date-native/datepicker-native.js similarity index 100% rename from enketo-core/src/widget/date-native/datepicker-native.js rename to packages/enketo-core/src/widget/date-native/datepicker-native.js diff --git a/enketo-core/src/widget/date/datepicker-extended.js b/packages/enketo-core/src/widget/date/datepicker-extended.js similarity index 100% rename from enketo-core/src/widget/date/datepicker-extended.js rename to packages/enketo-core/src/widget/date/datepicker-extended.js diff --git a/enketo-core/src/widget/date/datepicker-extended.scss b/packages/enketo-core/src/widget/date/datepicker-extended.scss similarity index 100% rename from enketo-core/src/widget/date/datepicker-extended.scss rename to packages/enketo-core/src/widget/date/datepicker-extended.scss diff --git a/enketo-core/src/widget/datetime/datetimepicker-extended.js b/packages/enketo-core/src/widget/datetime/datetimepicker-extended.js similarity index 100% rename from enketo-core/src/widget/datetime/datetimepicker-extended.js rename to packages/enketo-core/src/widget/datetime/datetimepicker-extended.js diff --git a/enketo-core/src/widget/datetime/datetimepicker-extended.scss b/packages/enketo-core/src/widget/datetime/datetimepicker-extended.scss similarity index 100% rename from enketo-core/src/widget/datetime/datetimepicker-extended.scss rename to packages/enketo-core/src/widget/datetime/datetimepicker-extended.scss diff --git a/enketo-core/src/widget/draw/draw-widget.js b/packages/enketo-core/src/widget/draw/draw-widget.js similarity index 100% rename from enketo-core/src/widget/draw/draw-widget.js rename to packages/enketo-core/src/widget/draw/draw-widget.js diff --git a/enketo-core/src/widget/draw/draw-widget.scss b/packages/enketo-core/src/widget/draw/draw-widget.scss similarity index 100% rename from enketo-core/src/widget/draw/draw-widget.scss rename to packages/enketo-core/src/widget/draw/draw-widget.scss diff --git a/enketo-core/src/widget/example/my-widget.js b/packages/enketo-core/src/widget/example/my-widget.js similarity index 100% rename from enketo-core/src/widget/example/my-widget.js rename to packages/enketo-core/src/widget/example/my-widget.js diff --git a/enketo-core/src/widget/example/my-widget.scss b/packages/enketo-core/src/widget/example/my-widget.scss similarity index 100% rename from enketo-core/src/widget/example/my-widget.scss rename to packages/enketo-core/src/widget/example/my-widget.scss diff --git a/enketo-core/src/widget/file/filepicker.js b/packages/enketo-core/src/widget/file/filepicker.js similarity index 100% rename from enketo-core/src/widget/file/filepicker.js rename to packages/enketo-core/src/widget/file/filepicker.js diff --git a/enketo-core/src/widget/file/filepicker.scss b/packages/enketo-core/src/widget/file/filepicker.scss similarity index 100% rename from enketo-core/src/widget/file/filepicker.scss rename to packages/enketo-core/src/widget/file/filepicker.scss diff --git a/enketo-core/src/widget/geo/geopicker.js b/packages/enketo-core/src/widget/geo/geopicker.js similarity index 100% rename from enketo-core/src/widget/geo/geopicker.js rename to packages/enketo-core/src/widget/geo/geopicker.js diff --git a/enketo-core/src/widget/geo/geopicker.scss b/packages/enketo-core/src/widget/geo/geopicker.scss similarity index 100% rename from enketo-core/src/widget/geo/geopicker.scss rename to packages/enketo-core/src/widget/geo/geopicker.scss diff --git a/enketo-core/src/widget/image-map/image-map.js b/packages/enketo-core/src/widget/image-map/image-map.js similarity index 100% rename from enketo-core/src/widget/image-map/image-map.js rename to packages/enketo-core/src/widget/image-map/image-map.js diff --git a/enketo-core/src/widget/image-map/image-map.scss b/packages/enketo-core/src/widget/image-map/image-map.scss similarity index 100% rename from enketo-core/src/widget/image-map/image-map.scss rename to packages/enketo-core/src/widget/image-map/image-map.scss diff --git a/enketo-core/src/widget/note/notewidget.js b/packages/enketo-core/src/widget/note/notewidget.js similarity index 100% rename from enketo-core/src/widget/note/notewidget.js rename to packages/enketo-core/src/widget/note/notewidget.js diff --git a/enketo-core/src/widget/note/notewidget.scss b/packages/enketo-core/src/widget/note/notewidget.scss similarity index 100% rename from enketo-core/src/widget/note/notewidget.scss rename to packages/enketo-core/src/widget/note/notewidget.scss diff --git a/enketo-core/src/widget/radio/radiopicker.js b/packages/enketo-core/src/widget/radio/radiopicker.js similarity index 100% rename from enketo-core/src/widget/radio/radiopicker.js rename to packages/enketo-core/src/widget/radio/radiopicker.js diff --git a/enketo-core/src/widget/radio/radiopicker.scss b/packages/enketo-core/src/widget/radio/radiopicker.scss similarity index 100% rename from enketo-core/src/widget/radio/radiopicker.scss rename to packages/enketo-core/src/widget/radio/radiopicker.scss diff --git a/enketo-core/src/widget/range/range-widget.js b/packages/enketo-core/src/widget/range/range-widget.js similarity index 100% rename from enketo-core/src/widget/range/range-widget.js rename to packages/enketo-core/src/widget/range/range-widget.js diff --git a/enketo-core/src/widget/range/range-widget.scss b/packages/enketo-core/src/widget/range/range-widget.scss similarity index 100% rename from enketo-core/src/widget/range/range-widget.scss rename to packages/enketo-core/src/widget/range/range-widget.scss diff --git a/enketo-core/src/widget/rank/rank-widget.js b/packages/enketo-core/src/widget/rank/rank-widget.js similarity index 100% rename from enketo-core/src/widget/rank/rank-widget.js rename to packages/enketo-core/src/widget/rank/rank-widget.js diff --git a/enketo-core/src/widget/rank/rank-widget.scss b/packages/enketo-core/src/widget/rank/rank-widget.scss similarity index 100% rename from enketo-core/src/widget/rank/rank-widget.scss rename to packages/enketo-core/src/widget/rank/rank-widget.scss diff --git a/enketo-core/src/widget/rating/rating.js b/packages/enketo-core/src/widget/rating/rating.js similarity index 100% rename from enketo-core/src/widget/rating/rating.js rename to packages/enketo-core/src/widget/rating/rating.js diff --git a/enketo-core/src/widget/rating/rating.scss b/packages/enketo-core/src/widget/rating/rating.scss similarity index 100% rename from enketo-core/src/widget/rating/rating.scss rename to packages/enketo-core/src/widget/rating/rating.scss diff --git a/enketo-core/src/widget/select-autocomplete/autocomplete.js b/packages/enketo-core/src/widget/select-autocomplete/autocomplete.js similarity index 100% rename from enketo-core/src/widget/select-autocomplete/autocomplete.js rename to packages/enketo-core/src/widget/select-autocomplete/autocomplete.js diff --git a/enketo-core/src/widget/select-autocomplete/autocomplete.scss b/packages/enketo-core/src/widget/select-autocomplete/autocomplete.scss similarity index 100% rename from enketo-core/src/widget/select-autocomplete/autocomplete.scss rename to packages/enketo-core/src/widget/select-autocomplete/autocomplete.scss diff --git a/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.js b/packages/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.js similarity index 100% rename from enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.js rename to packages/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.js diff --git a/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.scss b/packages/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.scss similarity index 100% rename from enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.scss rename to packages/enketo-core/src/widget/select-autocomplete/jquery.relevant-dropdown.scss diff --git a/enketo-core/src/widget/select-desktop/selectpicker.js b/packages/enketo-core/src/widget/select-desktop/selectpicker.js similarity index 100% rename from enketo-core/src/widget/select-desktop/selectpicker.js rename to packages/enketo-core/src/widget/select-desktop/selectpicker.js diff --git a/enketo-core/src/widget/select-desktop/selectpicker.scss b/packages/enketo-core/src/widget/select-desktop/selectpicker.scss similarity index 100% rename from enketo-core/src/widget/select-desktop/selectpicker.scss rename to packages/enketo-core/src/widget/select-desktop/selectpicker.scss diff --git a/enketo-core/src/widget/select-likert/likertitem.js b/packages/enketo-core/src/widget/select-likert/likertitem.js similarity index 100% rename from enketo-core/src/widget/select-likert/likertitem.js rename to packages/enketo-core/src/widget/select-likert/likertitem.js diff --git a/enketo-core/src/widget/select-likert/likertitem.scss b/packages/enketo-core/src/widget/select-likert/likertitem.scss similarity index 100% rename from enketo-core/src/widget/select-likert/likertitem.scss rename to packages/enketo-core/src/widget/select-likert/likertitem.scss diff --git a/enketo-core/src/widget/select-media/select-media.js b/packages/enketo-core/src/widget/select-media/select-media.js similarity index 100% rename from enketo-core/src/widget/select-media/select-media.js rename to packages/enketo-core/src/widget/select-media/select-media.js diff --git a/enketo-core/src/widget/select-media/select-media.scss b/packages/enketo-core/src/widget/select-media/select-media.scss similarity index 100% rename from enketo-core/src/widget/select-media/select-media.scss rename to packages/enketo-core/src/widget/select-media/select-media.scss diff --git a/enketo-core/src/widget/select-mobile/selectpicker.js b/packages/enketo-core/src/widget/select-mobile/selectpicker.js similarity index 100% rename from enketo-core/src/widget/select-mobile/selectpicker.js rename to packages/enketo-core/src/widget/select-mobile/selectpicker.js diff --git a/enketo-core/src/widget/select-mobile/selectpicker.scss b/packages/enketo-core/src/widget/select-mobile/selectpicker.scss similarity index 100% rename from enketo-core/src/widget/select-mobile/selectpicker.scss rename to packages/enketo-core/src/widget/select-mobile/selectpicker.scss diff --git a/enketo-core/src/widget/table/tablewidget.js b/packages/enketo-core/src/widget/table/tablewidget.js similarity index 100% rename from enketo-core/src/widget/table/tablewidget.js rename to packages/enketo-core/src/widget/table/tablewidget.js diff --git a/enketo-core/src/widget/table/tablewidget.scss b/packages/enketo-core/src/widget/table/tablewidget.scss similarity index 100% rename from enketo-core/src/widget/table/tablewidget.scss rename to packages/enketo-core/src/widget/table/tablewidget.scss diff --git a/enketo-core/src/widget/text-max/text-max.js b/packages/enketo-core/src/widget/text-max/text-max.js similarity index 100% rename from enketo-core/src/widget/text-max/text-max.js rename to packages/enketo-core/src/widget/text-max/text-max.js diff --git a/enketo-core/src/widget/text-print/text-print.js b/packages/enketo-core/src/widget/text-print/text-print.js similarity index 100% rename from enketo-core/src/widget/text-print/text-print.js rename to packages/enketo-core/src/widget/text-print/text-print.js diff --git a/enketo-core/src/widget/text-print/text-print.scss b/packages/enketo-core/src/widget/text-print/text-print.scss similarity index 100% rename from enketo-core/src/widget/text-print/text-print.scss rename to packages/enketo-core/src/widget/text-print/text-print.scss diff --git a/enketo-core/src/widget/textarea/textarea.js b/packages/enketo-core/src/widget/textarea/textarea.js similarity index 100% rename from enketo-core/src/widget/textarea/textarea.js rename to packages/enketo-core/src/widget/textarea/textarea.js diff --git a/enketo-core/src/widget/textarea/textarea.scss b/packages/enketo-core/src/widget/textarea/textarea.scss similarity index 100% rename from enketo-core/src/widget/textarea/textarea.scss rename to packages/enketo-core/src/widget/textarea/textarea.scss diff --git a/enketo-core/src/widget/thousands-sep/thousands-sep.js b/packages/enketo-core/src/widget/thousands-sep/thousands-sep.js similarity index 100% rename from enketo-core/src/widget/thousands-sep/thousands-sep.js rename to packages/enketo-core/src/widget/thousands-sep/thousands-sep.js diff --git a/enketo-core/src/widget/thousands-sep/thousands-sep.scss b/packages/enketo-core/src/widget/thousands-sep/thousands-sep.scss similarity index 100% rename from enketo-core/src/widget/thousands-sep/thousands-sep.scss rename to packages/enketo-core/src/widget/thousands-sep/thousands-sep.scss diff --git a/enketo-core/src/widget/time/timepicker-extended.js b/packages/enketo-core/src/widget/time/timepicker-extended.js similarity index 100% rename from enketo-core/src/widget/time/timepicker-extended.js rename to packages/enketo-core/src/widget/time/timepicker-extended.js diff --git a/enketo-core/src/widget/time/timepicker-extended.scss b/packages/enketo-core/src/widget/time/timepicker-extended.scss similarity index 100% rename from enketo-core/src/widget/time/timepicker-extended.scss rename to packages/enketo-core/src/widget/time/timepicker-extended.scss diff --git a/enketo-core/src/widget/time/timepicker.js b/packages/enketo-core/src/widget/time/timepicker.js similarity index 100% rename from enketo-core/src/widget/time/timepicker.js rename to packages/enketo-core/src/widget/time/timepicker.js diff --git a/enketo-core/src/widget/time/timepicker.scss b/packages/enketo-core/src/widget/time/timepicker.scss similarity index 100% rename from enketo-core/src/widget/time/timepicker.scss rename to packages/enketo-core/src/widget/time/timepicker.scss diff --git a/enketo-core/src/widget/url/url-widget.js b/packages/enketo-core/src/widget/url/url-widget.js similarity index 100% rename from enketo-core/src/widget/url/url-widget.js rename to packages/enketo-core/src/widget/url/url-widget.js diff --git a/enketo-core/src/widget/url/url-widget.scss b/packages/enketo-core/src/widget/url/url-widget.scss similarity index 100% rename from enketo-core/src/widget/url/url-widget.scss rename to packages/enketo-core/src/widget/url/url-widget.scss diff --git a/enketo-core/test/.eslintrc.json b/packages/enketo-core/test/.eslintrc.json similarity index 100% rename from enketo-core/test/.eslintrc.json rename to packages/enketo-core/test/.eslintrc.json diff --git a/enketo-core/test/forms/autocomplete-cascade.xml b/packages/enketo-core/test/forms/autocomplete-cascade.xml similarity index 100% rename from enketo-core/test/forms/autocomplete-cascade.xml rename to packages/enketo-core/test/forms/autocomplete-cascade.xml diff --git a/enketo-core/test/forms/calc-control.xml b/packages/enketo-core/test/forms/calc-control.xml similarity index 100% rename from enketo-core/test/forms/calc-control.xml rename to packages/enketo-core/test/forms/calc-control.xml diff --git a/enketo-core/test/forms/calc-in-group-with-relevant.xml b/packages/enketo-core/test/forms/calc-in-group-with-relevant.xml similarity index 100% rename from enketo-core/test/forms/calc-in-group-with-relevant.xml rename to packages/enketo-core/test/forms/calc-in-group-with-relevant.xml diff --git a/enketo-core/test/forms/calcs.xml b/packages/enketo-core/test/forms/calcs.xml similarity index 100% rename from enketo-core/test/forms/calcs.xml rename to packages/enketo-core/test/forms/calcs.xml diff --git a/enketo-core/test/forms/calcs_in_repeats.xml b/packages/enketo-core/test/forms/calcs_in_repeats.xml similarity index 100% rename from enketo-core/test/forms/calcs_in_repeats.xml rename to packages/enketo-core/test/forms/calcs_in_repeats.xml diff --git a/enketo-core/test/forms/calcs_in_repeats_2.xml b/packages/enketo-core/test/forms/calcs_in_repeats_2.xml similarity index 100% rename from enketo-core/test/forms/calcs_in_repeats_2.xml rename to packages/enketo-core/test/forms/calcs_in_repeats_2.xml diff --git a/enketo-core/test/forms/cascading_mixture_itext_noitext.xml b/packages/enketo-core/test/forms/cascading_mixture_itext_noitext.xml similarity index 100% rename from enketo-core/test/forms/cascading_mixture_itext_noitext.xml rename to packages/enketo-core/test/forms/cascading_mixture_itext_noitext.xml diff --git a/enketo-core/test/forms/comment.xml b/packages/enketo-core/test/forms/comment.xml similarity index 100% rename from enketo-core/test/forms/comment.xml rename to packages/enketo-core/test/forms/comment.xml diff --git a/enketo-core/test/forms/constraint-dependency.xml b/packages/enketo-core/test/forms/constraint-dependency.xml similarity index 100% rename from enketo-core/test/forms/constraint-dependency.xml rename to packages/enketo-core/test/forms/constraint-dependency.xml diff --git a/enketo-core/test/forms/count-repeated-nodes.xml b/packages/enketo-core/test/forms/count-repeated-nodes.xml similarity index 100% rename from enketo-core/test/forms/count-repeated-nodes.xml rename to packages/enketo-core/test/forms/count-repeated-nodes.xml diff --git a/enketo-core/test/forms/dynamic-required.xml b/packages/enketo-core/test/forms/dynamic-required.xml similarity index 100% rename from enketo-core/test/forms/dynamic-required.xml rename to packages/enketo-core/test/forms/dynamic-required.xml diff --git a/enketo-core/test/forms/external-data-v2.xml b/packages/enketo-core/test/forms/external-data-v2.xml similarity index 100% rename from enketo-core/test/forms/external-data-v2.xml rename to packages/enketo-core/test/forms/external-data-v2.xml diff --git a/enketo-core/test/forms/group-relevant-indexed-repeat.xml b/packages/enketo-core/test/forms/group-relevant-indexed-repeat.xml similarity index 100% rename from enketo-core/test/forms/group-relevant-indexed-repeat.xml rename to packages/enketo-core/test/forms/group-relevant-indexed-repeat.xml diff --git a/enketo-core/test/forms/group_branch.xml b/packages/enketo-core/test/forms/group_branch.xml similarity index 100% rename from enketo-core/test/forms/group_branch.xml rename to packages/enketo-core/test/forms/group_branch.xml diff --git a/enketo-core/test/forms/groups-pages.xml b/packages/enketo-core/test/forms/groups-pages.xml similarity index 100% rename from enketo-core/test/forms/groups-pages.xml rename to packages/enketo-core/test/forms/groups-pages.xml diff --git a/enketo-core/test/forms/issue208.xml b/packages/enketo-core/test/forms/issue208.xml similarity index 100% rename from enketo-core/test/forms/issue208.xml rename to packages/enketo-core/test/forms/issue208.xml diff --git a/enketo-core/test/forms/itemset-relevant-2.xml b/packages/enketo-core/test/forms/itemset-relevant-2.xml similarity index 100% rename from enketo-core/test/forms/itemset-relevant-2.xml rename to packages/enketo-core/test/forms/itemset-relevant-2.xml diff --git a/enketo-core/test/forms/itemset-relevant.xml b/packages/enketo-core/test/forms/itemset-relevant.xml similarity index 100% rename from enketo-core/test/forms/itemset-relevant.xml rename to packages/enketo-core/test/forms/itemset-relevant.xml diff --git a/enketo-core/test/forms/jr-choice-name-autocomplete.xml b/packages/enketo-core/test/forms/jr-choice-name-autocomplete.xml similarity index 100% rename from enketo-core/test/forms/jr-choice-name-autocomplete.xml rename to packages/enketo-core/test/forms/jr-choice-name-autocomplete.xml diff --git a/enketo-core/test/forms/jr-choice-name-external.xml b/packages/enketo-core/test/forms/jr-choice-name-external.xml similarity index 100% rename from enketo-core/test/forms/jr-choice-name-external.xml rename to packages/enketo-core/test/forms/jr-choice-name-external.xml diff --git a/enketo-core/test/forms/jr-choice-name-repeats.xml b/packages/enketo-core/test/forms/jr-choice-name-repeats.xml similarity index 100% rename from enketo-core/test/forms/jr-choice-name-repeats.xml rename to packages/enketo-core/test/forms/jr-choice-name-repeats.xml diff --git a/enketo-core/test/forms/jr-choice-name.issue-490.xml b/packages/enketo-core/test/forms/jr-choice-name.issue-490.xml similarity index 100% rename from enketo-core/test/forms/jr-choice-name.issue-490.xml rename to packages/enketo-core/test/forms/jr-choice-name.issue-490.xml diff --git a/enketo-core/test/forms/jr-choice-name.xml b/packages/enketo-core/test/forms/jr-choice-name.xml similarity index 100% rename from enketo-core/test/forms/jr-choice-name.xml rename to packages/enketo-core/test/forms/jr-choice-name.xml diff --git a/enketo-core/test/forms/merge-empty-instance.xml b/packages/enketo-core/test/forms/merge-empty-instance.xml similarity index 100% rename from enketo-core/test/forms/merge-empty-instance.xml rename to packages/enketo-core/test/forms/merge-empty-instance.xml diff --git a/enketo-core/test/forms/meta-namespace.xml b/packages/enketo-core/test/forms/meta-namespace.xml similarity index 100% rename from enketo-core/test/forms/meta-namespace.xml rename to packages/enketo-core/test/forms/meta-namespace.xml diff --git a/enketo-core/test/forms/multiple_repeats_relevant.xml b/packages/enketo-core/test/forms/multiple_repeats_relevant.xml similarity index 100% rename from enketo-core/test/forms/multiple_repeats_relevant.xml rename to packages/enketo-core/test/forms/multiple_repeats_relevant.xml diff --git a/enketo-core/test/forms/nested-branches.xml b/packages/enketo-core/test/forms/nested-branches.xml similarity index 100% rename from enketo-core/test/forms/nested-branches.xml rename to packages/enketo-core/test/forms/nested-branches.xml diff --git a/enketo-core/test/forms/nested-repeat-v5.xml b/packages/enketo-core/test/forms/nested-repeat-v5.xml similarity index 100% rename from enketo-core/test/forms/nested-repeat-v5.xml rename to packages/enketo-core/test/forms/nested-repeat-v5.xml diff --git a/enketo-core/test/forms/nested-repeats-itemset.xml b/packages/enketo-core/test/forms/nested-repeats-itemset.xml similarity index 100% rename from enketo-core/test/forms/nested-repeats-itemset.xml rename to packages/enketo-core/test/forms/nested-repeats-itemset.xml diff --git a/enketo-core/test/forms/nested-repeats-nasty.xml b/packages/enketo-core/test/forms/nested-repeats-nasty.xml similarity index 100% rename from enketo-core/test/forms/nested-repeats-nasty.xml rename to packages/enketo-core/test/forms/nested-repeats-nasty.xml diff --git a/enketo-core/test/forms/nested_repeats.xml b/packages/enketo-core/test/forms/nested_repeats.xml similarity index 100% rename from enketo-core/test/forms/nested_repeats.xml rename to packages/enketo-core/test/forms/nested_repeats.xml diff --git a/enketo-core/test/forms/nested_repeats_triple.xml b/packages/enketo-core/test/forms/nested_repeats_triple.xml similarity index 100% rename from enketo-core/test/forms/nested_repeats_triple.xml rename to packages/enketo-core/test/forms/nested_repeats_triple.xml diff --git a/enketo-core/test/forms/new_cascading_selections.xml b/packages/enketo-core/test/forms/new_cascading_selections.xml similarity index 100% rename from enketo-core/test/forms/new_cascading_selections.xml rename to packages/enketo-core/test/forms/new_cascading_selections.xml diff --git a/enketo-core/test/forms/new_cascading_selections_inside_repeats.xml b/packages/enketo-core/test/forms/new_cascading_selections_inside_repeats.xml similarity index 100% rename from enketo-core/test/forms/new_cascading_selections_inside_repeats.xml rename to packages/enketo-core/test/forms/new_cascading_selections_inside_repeats.xml diff --git a/enketo-core/test/forms/nodename.xml b/packages/enketo-core/test/forms/nodename.xml similarity index 100% rename from enketo-core/test/forms/nodename.xml rename to packages/enketo-core/test/forms/nodename.xml diff --git a/enketo-core/test/forms/output-irrelevant.xml b/packages/enketo-core/test/forms/output-irrelevant.xml similarity index 100% rename from enketo-core/test/forms/output-irrelevant.xml rename to packages/enketo-core/test/forms/output-irrelevant.xml diff --git a/enketo-core/test/forms/outputs_in_repeats.xml b/packages/enketo-core/test/forms/outputs_in_repeats.xml similarity index 100% rename from enketo-core/test/forms/outputs_in_repeats.xml rename to packages/enketo-core/test/forms/outputs_in_repeats.xml diff --git a/enketo-core/test/forms/pages-comment.xml b/packages/enketo-core/test/forms/pages-comment.xml similarity index 100% rename from enketo-core/test/forms/pages-comment.xml rename to packages/enketo-core/test/forms/pages-comment.xml diff --git a/enketo-core/test/forms/pages-nolabel.xml b/packages/enketo-core/test/forms/pages-nolabel.xml similarity index 100% rename from enketo-core/test/forms/pages-nolabel.xml rename to packages/enketo-core/test/forms/pages-nolabel.xml diff --git a/enketo-core/test/forms/pages.xml b/packages/enketo-core/test/forms/pages.xml similarity index 100% rename from enketo-core/test/forms/pages.xml rename to packages/enketo-core/test/forms/pages.xml diff --git a/enketo-core/test/forms/preload-input.xml b/packages/enketo-core/test/forms/preload-input.xml similarity index 100% rename from enketo-core/test/forms/preload-input.xml rename to packages/enketo-core/test/forms/preload-input.xml diff --git a/enketo-core/test/forms/preload.xml b/packages/enketo-core/test/forms/preload.xml similarity index 100% rename from enketo-core/test/forms/preload.xml rename to packages/enketo-core/test/forms/preload.xml diff --git a/enketo-core/test/forms/radio.xml b/packages/enketo-core/test/forms/radio.xml similarity index 100% rename from enketo-core/test/forms/radio.xml rename to packages/enketo-core/test/forms/radio.xml diff --git a/enketo-core/test/forms/radio2.xml b/packages/enketo-core/test/forms/radio2.xml similarity index 100% rename from enketo-core/test/forms/radio2.xml rename to packages/enketo-core/test/forms/radio2.xml diff --git a/enketo-core/test/forms/random.xml b/packages/enketo-core/test/forms/random.xml similarity index 100% rename from enketo-core/test/forms/random.xml rename to packages/enketo-core/test/forms/random.xml diff --git a/enketo-core/test/forms/randomize.xml b/packages/enketo-core/test/forms/randomize.xml similarity index 100% rename from enketo-core/test/forms/randomize.xml rename to packages/enketo-core/test/forms/randomize.xml diff --git a/enketo-core/test/forms/range.xml b/packages/enketo-core/test/forms/range.xml similarity index 100% rename from enketo-core/test/forms/range.xml rename to packages/enketo-core/test/forms/range.xml diff --git a/enketo-core/test/forms/rank.xml b/packages/enketo-core/test/forms/rank.xml similarity index 100% rename from enketo-core/test/forms/rank.xml rename to packages/enketo-core/test/forms/rank.xml diff --git a/enketo-core/test/forms/readonly-invalid.xml b/packages/enketo-core/test/forms/readonly-invalid.xml similarity index 100% rename from enketo-core/test/forms/readonly-invalid.xml rename to packages/enketo-core/test/forms/readonly-invalid.xml diff --git a/enketo-core/test/forms/readonly.xml b/packages/enketo-core/test/forms/readonly.xml similarity index 100% rename from enketo-core/test/forms/readonly.xml rename to packages/enketo-core/test/forms/readonly.xml diff --git a/enketo-core/test/forms/relative.xml b/packages/enketo-core/test/forms/relative.xml similarity index 100% rename from enketo-core/test/forms/relative.xml rename to packages/enketo-core/test/forms/relative.xml diff --git a/enketo-core/test/forms/relevant-calcs.xml b/packages/enketo-core/test/forms/relevant-calcs.xml similarity index 100% rename from enketo-core/test/forms/relevant-calcs.xml rename to packages/enketo-core/test/forms/relevant-calcs.xml diff --git a/enketo-core/test/forms/relevant-default.xml b/packages/enketo-core/test/forms/relevant-default.xml similarity index 100% rename from enketo-core/test/forms/relevant-default.xml rename to packages/enketo-core/test/forms/relevant-default.xml diff --git a/enketo-core/test/forms/repeat-autocomplete.xml b/packages/enketo-core/test/forms/repeat-autocomplete.xml similarity index 100% rename from enketo-core/test/forms/repeat-autocomplete.xml rename to packages/enketo-core/test/forms/repeat-autocomplete.xml diff --git a/enketo-core/test/forms/repeat-calc.xml b/packages/enketo-core/test/forms/repeat-calc.xml similarity index 100% rename from enketo-core/test/forms/repeat-calc.xml rename to packages/enketo-core/test/forms/repeat-calc.xml diff --git a/enketo-core/test/forms/repeat-child-relevant.xml b/packages/enketo-core/test/forms/repeat-child-relevant.xml similarity index 100% rename from enketo-core/test/forms/repeat-child-relevant.xml rename to packages/enketo-core/test/forms/repeat-child-relevant.xml diff --git a/enketo-core/test/forms/repeat-count-calc-only.xml b/packages/enketo-core/test/forms/repeat-count-calc-only.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-calc-only.xml rename to packages/enketo-core/test/forms/repeat-count-calc-only.xml diff --git a/enketo-core/test/forms/repeat-count-calculate-irrelevant.xml b/packages/enketo-core/test/forms/repeat-count-calculate-irrelevant.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-calculate-irrelevant.xml rename to packages/enketo-core/test/forms/repeat-count-calculate-irrelevant.xml diff --git a/enketo-core/test/forms/repeat-count-nested-2.xml b/packages/enketo-core/test/forms/repeat-count-nested-2.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-nested-2.xml rename to packages/enketo-core/test/forms/repeat-count-nested-2.xml diff --git a/enketo-core/test/forms/repeat-count-nested-3.xml b/packages/enketo-core/test/forms/repeat-count-nested-3.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-nested-3.xml rename to packages/enketo-core/test/forms/repeat-count-nested-3.xml diff --git a/enketo-core/test/forms/repeat-count-relative-nested.xml b/packages/enketo-core/test/forms/repeat-count-relative-nested.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-relative-nested.xml rename to packages/enketo-core/test/forms/repeat-count-relative-nested.xml diff --git a/enketo-core/test/forms/repeat-count-relative.xml b/packages/enketo-core/test/forms/repeat-count-relative.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-relative.xml rename to packages/enketo-core/test/forms/repeat-count-relative.xml diff --git a/enketo-core/test/forms/repeat-count-relevant.xml b/packages/enketo-core/test/forms/repeat-count-relevant.xml similarity index 100% rename from enketo-core/test/forms/repeat-count-relevant.xml rename to packages/enketo-core/test/forms/repeat-count-relevant.xml diff --git a/enketo-core/test/forms/repeat-count.xml b/packages/enketo-core/test/forms/repeat-count.xml similarity index 100% rename from enketo-core/test/forms/repeat-count.xml rename to packages/enketo-core/test/forms/repeat-count.xml diff --git a/enketo-core/test/forms/repeat-default.xml b/packages/enketo-core/test/forms/repeat-default.xml similarity index 100% rename from enketo-core/test/forms/repeat-default.xml rename to packages/enketo-core/test/forms/repeat-default.xml diff --git a/enketo-core/test/forms/repeat-dot.xml b/packages/enketo-core/test/forms/repeat-dot.xml similarity index 100% rename from enketo-core/test/forms/repeat-dot.xml rename to packages/enketo-core/test/forms/repeat-dot.xml diff --git a/enketo-core/test/forms/repeat-irrelevant-date.xml b/packages/enketo-core/test/forms/repeat-irrelevant-date.xml similarity index 100% rename from enketo-core/test/forms/repeat-irrelevant-date.xml rename to packages/enketo-core/test/forms/repeat-irrelevant-date.xml diff --git a/enketo-core/test/forms/repeat-only-pages.xml b/packages/enketo-core/test/forms/repeat-only-pages.xml similarity index 100% rename from enketo-core/test/forms/repeat-only-pages.xml rename to packages/enketo-core/test/forms/repeat-only-pages.xml diff --git a/enketo-core/test/forms/repeat-position.xml b/packages/enketo-core/test/forms/repeat-position.xml similarity index 100% rename from enketo-core/test/forms/repeat-position.xml rename to packages/enketo-core/test/forms/repeat-position.xml diff --git a/enketo-core/test/forms/repeat-radio-itemset.xml b/packages/enketo-core/test/forms/repeat-radio-itemset.xml similarity index 100% rename from enketo-core/test/forms/repeat-radio-itemset.xml rename to packages/enketo-core/test/forms/repeat-radio-itemset.xml diff --git a/enketo-core/test/forms/repeat-radio.xml b/packages/enketo-core/test/forms/repeat-radio.xml similarity index 100% rename from enketo-core/test/forms/repeat-radio.xml rename to packages/enketo-core/test/forms/repeat-radio.xml diff --git a/enketo-core/test/forms/repeat-relevant-calculate-single.xml b/packages/enketo-core/test/forms/repeat-relevant-calculate-single.xml similarity index 100% rename from enketo-core/test/forms/repeat-relevant-calculate-single.xml rename to packages/enketo-core/test/forms/repeat-relevant-calculate-single.xml diff --git a/enketo-core/test/forms/repeat-relevant-calculate.xml b/packages/enketo-core/test/forms/repeat-relevant-calculate.xml similarity index 100% rename from enketo-core/test/forms/repeat-relevant-calculate.xml rename to packages/enketo-core/test/forms/repeat-relevant-calculate.xml diff --git a/enketo-core/test/forms/repeat-relevant-select.xml b/packages/enketo-core/test/forms/repeat-relevant-select.xml similarity index 100% rename from enketo-core/test/forms/repeat-relevant-select.xml rename to packages/enketo-core/test/forms/repeat-relevant-select.xml diff --git a/enketo-core/test/forms/repeat-relevant-select1.xml b/packages/enketo-core/test/forms/repeat-relevant-select1.xml similarity index 100% rename from enketo-core/test/forms/repeat-relevant-select1.xml rename to packages/enketo-core/test/forms/repeat-relevant-select1.xml diff --git a/enketo-core/test/forms/repeat-required.xml b/packages/enketo-core/test/forms/repeat-required.xml similarity index 100% rename from enketo-core/test/forms/repeat-required.xml rename to packages/enketo-core/test/forms/repeat-required.xml diff --git a/enketo-core/test/forms/reprelcur1.xml b/packages/enketo-core/test/forms/reprelcur1.xml similarity index 100% rename from enketo-core/test/forms/reprelcur1.xml rename to packages/enketo-core/test/forms/reprelcur1.xml diff --git a/enketo-core/test/forms/required.xml b/packages/enketo-core/test/forms/required.xml similarity index 100% rename from enketo-core/test/forms/required.xml rename to packages/enketo-core/test/forms/required.xml diff --git a/enketo-core/test/forms/secondary-lang-form-nolang.xml b/packages/enketo-core/test/forms/secondary-lang-form-nolang.xml similarity index 100% rename from enketo-core/test/forms/secondary-lang-form-nolang.xml rename to packages/enketo-core/test/forms/secondary-lang-form-nolang.xml diff --git a/enketo-core/test/forms/secondary-lang.xml b/packages/enketo-core/test/forms/secondary-lang.xml similarity index 100% rename from enketo-core/test/forms/secondary-lang.xml rename to packages/enketo-core/test/forms/secondary-lang.xml diff --git a/enketo-core/test/forms/select-from-selected.xml b/packages/enketo-core/test/forms/select-from-selected.xml similarity index 100% rename from enketo-core/test/forms/select-from-selected.xml rename to packages/enketo-core/test/forms/select-from-selected.xml diff --git a/enketo-core/test/forms/setgeopoint-multiple-under-one.xml b/packages/enketo-core/test/forms/setgeopoint-multiple-under-one.xml similarity index 100% rename from enketo-core/test/forms/setgeopoint-multiple-under-one.xml rename to packages/enketo-core/test/forms/setgeopoint-multiple-under-one.xml diff --git a/enketo-core/test/forms/setgeopoint.xml b/packages/enketo-core/test/forms/setgeopoint.xml similarity index 100% rename from enketo-core/test/forms/setgeopoint.xml rename to packages/enketo-core/test/forms/setgeopoint.xml diff --git a/enketo-core/test/forms/setvalue-multiple-under-one.xml b/packages/enketo-core/test/forms/setvalue-multiple-under-one.xml similarity index 100% rename from enketo-core/test/forms/setvalue-multiple-under-one.xml rename to packages/enketo-core/test/forms/setvalue-multiple-under-one.xml diff --git a/enketo-core/test/forms/setvalue-order.xml b/packages/enketo-core/test/forms/setvalue-order.xml similarity index 100% rename from enketo-core/test/forms/setvalue-order.xml rename to packages/enketo-core/test/forms/setvalue-order.xml diff --git a/enketo-core/test/forms/setvalue-repeat-order.xml b/packages/enketo-core/test/forms/setvalue-repeat-order.xml similarity index 100% rename from enketo-core/test/forms/setvalue-repeat-order.xml rename to packages/enketo-core/test/forms/setvalue-repeat-order.xml diff --git a/enketo-core/test/forms/setvalue-repeat-tricky-trigger-target.xml b/packages/enketo-core/test/forms/setvalue-repeat-tricky-trigger-target.xml similarity index 100% rename from enketo-core/test/forms/setvalue-repeat-tricky-trigger-target.xml rename to packages/enketo-core/test/forms/setvalue-repeat-tricky-trigger-target.xml diff --git a/enketo-core/test/forms/setvalue-repeat.xml b/packages/enketo-core/test/forms/setvalue-repeat.xml similarity index 100% rename from enketo-core/test/forms/setvalue-repeat.xml rename to packages/enketo-core/test/forms/setvalue-repeat.xml diff --git a/enketo-core/test/forms/setvalue-template.xml b/packages/enketo-core/test/forms/setvalue-template.xml similarity index 100% rename from enketo-core/test/forms/setvalue-template.xml rename to packages/enketo-core/test/forms/setvalue-template.xml diff --git a/enketo-core/test/forms/setvalue-triggered-by-calc.xml b/packages/enketo-core/test/forms/setvalue-triggered-by-calc.xml similarity index 100% rename from enketo-core/test/forms/setvalue-triggered-by-calc.xml rename to packages/enketo-core/test/forms/setvalue-triggered-by-calc.xml diff --git a/enketo-core/test/forms/setvalue.xml b/packages/enketo-core/test/forms/setvalue.xml similarity index 100% rename from enketo-core/test/forms/setvalue.xml rename to packages/enketo-core/test/forms/setvalue.xml diff --git a/enketo-core/test/forms/thedata.xml b/packages/enketo-core/test/forms/thedata.xml similarity index 100% rename from enketo-core/test/forms/thedata.xml rename to packages/enketo-core/test/forms/thedata.xml diff --git a/enketo-core/test/helpers/geolocation.js b/packages/enketo-core/test/helpers/geolocation.js similarity index 100% rename from enketo-core/test/helpers/geolocation.js rename to packages/enketo-core/test/helpers/geolocation.js diff --git a/enketo-core/test/helpers/load-form.js b/packages/enketo-core/test/helpers/load-form.js similarity index 100% rename from enketo-core/test/helpers/load-form.js rename to packages/enketo-core/test/helpers/load-form.js diff --git a/enketo-core/test/helpers/test-widget.js b/packages/enketo-core/test/helpers/test-widget.js similarity index 100% rename from enketo-core/test/helpers/test-widget.js rename to packages/enketo-core/test/helpers/test-widget.js diff --git a/enketo-core/test/karma.conf.js b/packages/enketo-core/test/karma.conf.js similarity index 100% rename from enketo-core/test/karma.conf.js rename to packages/enketo-core/test/karma.conf.js diff --git a/enketo-core/test/spec/calculate.spec.js b/packages/enketo-core/test/spec/calculate.spec.js similarity index 100% rename from enketo-core/test/spec/calculate.spec.js rename to packages/enketo-core/test/spec/calculate.spec.js diff --git a/enketo-core/test/spec/dom-utils.spec.js b/packages/enketo-core/test/spec/dom-utils.spec.js similarity index 100% rename from enketo-core/test/spec/dom-utils.spec.js rename to packages/enketo-core/test/spec/dom-utils.spec.js diff --git a/enketo-core/test/spec/form.spec.js b/packages/enketo-core/test/spec/form.spec.js similarity index 100% rename from enketo-core/test/spec/form.spec.js rename to packages/enketo-core/test/spec/form.spec.js diff --git a/enketo-core/test/spec/format.spec.js b/packages/enketo-core/test/spec/format.spec.js similarity index 100% rename from enketo-core/test/spec/format.spec.js rename to packages/enketo-core/test/spec/format.spec.js diff --git a/enketo-core/test/spec/formmodel.spec.js b/packages/enketo-core/test/spec/formmodel.spec.js similarity index 100% rename from enketo-core/test/spec/formmodel.spec.js rename to packages/enketo-core/test/spec/formmodel.spec.js diff --git a/enketo-core/test/spec/input.spec.js b/packages/enketo-core/test/spec/input.spec.js similarity index 100% rename from enketo-core/test/spec/input.spec.js rename to packages/enketo-core/test/spec/input.spec.js diff --git a/enketo-core/test/spec/itemset.spec.js b/packages/enketo-core/test/spec/itemset.spec.js similarity index 100% rename from enketo-core/test/spec/itemset.spec.js rename to packages/enketo-core/test/spec/itemset.spec.js diff --git a/enketo-core/test/spec/page.spec.js b/packages/enketo-core/test/spec/page.spec.js similarity index 100% rename from enketo-core/test/spec/page.spec.js rename to packages/enketo-core/test/spec/page.spec.js diff --git a/enketo-core/test/spec/repeat.spec.js b/packages/enketo-core/test/spec/repeat.spec.js similarity index 100% rename from enketo-core/test/spec/repeat.spec.js rename to packages/enketo-core/test/spec/repeat.spec.js diff --git a/enketo-core/test/spec/setgeopoint.spec.js b/packages/enketo-core/test/spec/setgeopoint.spec.js similarity index 100% rename from enketo-core/test/spec/setgeopoint.spec.js rename to packages/enketo-core/test/spec/setgeopoint.spec.js diff --git a/enketo-core/test/spec/setvalue.spec.js b/packages/enketo-core/test/spec/setvalue.spec.js similarity index 100% rename from enketo-core/test/spec/setvalue.spec.js rename to packages/enketo-core/test/spec/setvalue.spec.js diff --git a/enketo-core/test/spec/toc.spec.js b/packages/enketo-core/test/spec/toc.spec.js similarity index 100% rename from enketo-core/test/spec/toc.spec.js rename to packages/enketo-core/test/spec/toc.spec.js diff --git a/enketo-core/test/spec/types.spec.js b/packages/enketo-core/test/spec/types.spec.js similarity index 100% rename from enketo-core/test/spec/types.spec.js rename to packages/enketo-core/test/spec/types.spec.js diff --git a/enketo-core/test/spec/utils.spec.js b/packages/enketo-core/test/spec/utils.spec.js similarity index 100% rename from enketo-core/test/spec/utils.spec.js rename to packages/enketo-core/test/spec/utils.spec.js diff --git a/enketo-core/test/spec/widget.analog-scale.spec.js b/packages/enketo-core/test/spec/widget.analog-scale.spec.js similarity index 100% rename from enketo-core/test/spec/widget.analog-scale.spec.js rename to packages/enketo-core/test/spec/widget.analog-scale.spec.js diff --git a/enketo-core/test/spec/widget.autocomplete.spec.js b/packages/enketo-core/test/spec/widget.autocomplete.spec.js similarity index 100% rename from enketo-core/test/spec/widget.autocomplete.spec.js rename to packages/enketo-core/test/spec/widget.autocomplete.spec.js diff --git a/enketo-core/test/spec/widget.big-image.spec.js b/packages/enketo-core/test/spec/widget.big-image.spec.js similarity index 100% rename from enketo-core/test/spec/widget.big-image.spec.js rename to packages/enketo-core/test/spec/widget.big-image.spec.js diff --git a/enketo-core/test/spec/widget.columns.spec.js b/packages/enketo-core/test/spec/widget.columns.spec.js similarity index 100% rename from enketo-core/test/spec/widget.columns.spec.js rename to packages/enketo-core/test/spec/widget.columns.spec.js diff --git a/enketo-core/test/spec/widget.comment.spec.js b/packages/enketo-core/test/spec/widget.comment.spec.js similarity index 100% rename from enketo-core/test/spec/widget.comment.spec.js rename to packages/enketo-core/test/spec/widget.comment.spec.js diff --git a/enketo-core/test/spec/widget.date-ios.spec.js b/packages/enketo-core/test/spec/widget.date-ios.spec.js similarity index 100% rename from enketo-core/test/spec/widget.date-ios.spec.js rename to packages/enketo-core/test/spec/widget.date-ios.spec.js diff --git a/enketo-core/test/spec/widget.date-mobile.spec.js b/packages/enketo-core/test/spec/widget.date-mobile.spec.js similarity index 100% rename from enketo-core/test/spec/widget.date-mobile.spec.js rename to packages/enketo-core/test/spec/widget.date-mobile.spec.js diff --git a/enketo-core/test/spec/widget.date-native.spec.js b/packages/enketo-core/test/spec/widget.date-native.spec.js similarity index 100% rename from enketo-core/test/spec/widget.date-native.spec.js rename to packages/enketo-core/test/spec/widget.date-native.spec.js diff --git a/enketo-core/test/spec/widget.date.spec.js b/packages/enketo-core/test/spec/widget.date.spec.js similarity index 100% rename from enketo-core/test/spec/widget.date.spec.js rename to packages/enketo-core/test/spec/widget.date.spec.js diff --git a/enketo-core/test/spec/widget.datetime.spec.js b/packages/enketo-core/test/spec/widget.datetime.spec.js similarity index 100% rename from enketo-core/test/spec/widget.datetime.spec.js rename to packages/enketo-core/test/spec/widget.datetime.spec.js diff --git a/enketo-core/test/spec/widget.draw.spec.js b/packages/enketo-core/test/spec/widget.draw.spec.js similarity index 100% rename from enketo-core/test/spec/widget.draw.spec.js rename to packages/enketo-core/test/spec/widget.draw.spec.js diff --git a/enketo-core/test/spec/widget.example.spec.js b/packages/enketo-core/test/spec/widget.example.spec.js similarity index 100% rename from enketo-core/test/spec/widget.example.spec.js rename to packages/enketo-core/test/spec/widget.example.spec.js diff --git a/enketo-core/test/spec/widget.filepicker.spec.js b/packages/enketo-core/test/spec/widget.filepicker.spec.js similarity index 100% rename from enketo-core/test/spec/widget.filepicker.spec.js rename to packages/enketo-core/test/spec/widget.filepicker.spec.js diff --git a/enketo-core/test/spec/widget.geo.spec.js b/packages/enketo-core/test/spec/widget.geo.spec.js similarity index 100% rename from enketo-core/test/spec/widget.geo.spec.js rename to packages/enketo-core/test/spec/widget.geo.spec.js diff --git a/enketo-core/test/spec/widget.image-map.spec.js b/packages/enketo-core/test/spec/widget.image-map.spec.js similarity index 100% rename from enketo-core/test/spec/widget.image-map.spec.js rename to packages/enketo-core/test/spec/widget.image-map.spec.js diff --git a/enketo-core/test/spec/widget.radiopicker.spec.js b/packages/enketo-core/test/spec/widget.radiopicker.spec.js similarity index 100% rename from enketo-core/test/spec/widget.radiopicker.spec.js rename to packages/enketo-core/test/spec/widget.radiopicker.spec.js diff --git a/enketo-core/test/spec/widget.range.spec.js b/packages/enketo-core/test/spec/widget.range.spec.js similarity index 100% rename from enketo-core/test/spec/widget.range.spec.js rename to packages/enketo-core/test/spec/widget.range.spec.js diff --git a/enketo-core/test/spec/widget.rank.spec.js b/packages/enketo-core/test/spec/widget.rank.spec.js similarity index 100% rename from enketo-core/test/spec/widget.rank.spec.js rename to packages/enketo-core/test/spec/widget.rank.spec.js diff --git a/enketo-core/test/spec/widget.rating.spec.js b/packages/enketo-core/test/spec/widget.rating.spec.js similarity index 100% rename from enketo-core/test/spec/widget.rating.spec.js rename to packages/enketo-core/test/spec/widget.rating.spec.js diff --git a/enketo-core/test/spec/widget.select-desktop.spec.js b/packages/enketo-core/test/spec/widget.select-desktop.spec.js similarity index 100% rename from enketo-core/test/spec/widget.select-desktop.spec.js rename to packages/enketo-core/test/spec/widget.select-desktop.spec.js diff --git a/enketo-core/test/spec/widget.select-media.spec.js b/packages/enketo-core/test/spec/widget.select-media.spec.js similarity index 100% rename from enketo-core/test/spec/widget.select-media.spec.js rename to packages/enketo-core/test/spec/widget.select-media.spec.js diff --git a/enketo-core/test/spec/widget.select-mobile.spec.js b/packages/enketo-core/test/spec/widget.select-mobile.spec.js similarity index 100% rename from enketo-core/test/spec/widget.select-mobile.spec.js rename to packages/enketo-core/test/spec/widget.select-mobile.spec.js diff --git a/enketo-core/test/spec/widget.text-max.spec.js b/packages/enketo-core/test/spec/widget.text-max.spec.js similarity index 100% rename from enketo-core/test/spec/widget.text-max.spec.js rename to packages/enketo-core/test/spec/widget.text-max.spec.js diff --git a/enketo-core/test/spec/widget.textarea.spec.js b/packages/enketo-core/test/spec/widget.textarea.spec.js similarity index 100% rename from enketo-core/test/spec/widget.textarea.spec.js rename to packages/enketo-core/test/spec/widget.textarea.spec.js diff --git a/enketo-core/test/spec/widget.thousands-sep.spec.js b/packages/enketo-core/test/spec/widget.thousands-sep.spec.js similarity index 100% rename from enketo-core/test/spec/widget.thousands-sep.spec.js rename to packages/enketo-core/test/spec/widget.thousands-sep.spec.js diff --git a/enketo-core/test/spec/widget.time.spec.js b/packages/enketo-core/test/spec/widget.time.spec.js similarity index 100% rename from enketo-core/test/spec/widget.time.spec.js rename to packages/enketo-core/test/spec/widget.time.spec.js diff --git a/enketo-core/test/spec/widget.url.spec.js b/packages/enketo-core/test/spec/widget.url.spec.js similarity index 100% rename from enketo-core/test/spec/widget.url.spec.js rename to packages/enketo-core/test/spec/widget.url.spec.js diff --git a/enketo-core/tsconfig.json b/packages/enketo-core/tsconfig.json similarity index 100% rename from enketo-core/tsconfig.json rename to packages/enketo-core/tsconfig.json diff --git a/enketo-core/tutorials/00-getting-started.md b/packages/enketo-core/tutorials/00-getting-started.md similarity index 100% rename from enketo-core/tutorials/00-getting-started.md rename to packages/enketo-core/tutorials/00-getting-started.md diff --git a/enketo-core/tutorials/10-configuration.md b/packages/enketo-core/tutorials/10-configuration.md similarity index 100% rename from enketo-core/tutorials/10-configuration.md rename to packages/enketo-core/tutorials/10-configuration.md diff --git a/enketo-core/tutorials/20-development.md b/packages/enketo-core/tutorials/20-development.md similarity index 100% rename from enketo-core/tutorials/20-development.md rename to packages/enketo-core/tutorials/20-development.md diff --git a/enketo-core/tutorials/30-events.md b/packages/enketo-core/tutorials/30-events.md similarity index 100% rename from enketo-core/tutorials/30-events.md rename to packages/enketo-core/tutorials/30-events.md diff --git a/enketo-core/tutorials/40-widgets.md b/packages/enketo-core/tutorials/40-widgets.md similarity index 100% rename from enketo-core/tutorials/40-widgets.md rename to packages/enketo-core/tutorials/40-widgets.md diff --git a/enketo-core/tutorials/90-ie11.md b/packages/enketo-core/tutorials/90-ie11.md similarity index 100% rename from enketo-core/tutorials/90-ie11.md rename to packages/enketo-core/tutorials/90-ie11.md diff --git a/enketo-core/tutorials/index.json b/packages/enketo-core/tutorials/index.json similarity index 100% rename from enketo-core/tutorials/index.json rename to packages/enketo-core/tutorials/index.json diff --git a/enketo-express/.dockerignore b/packages/enketo-express/.dockerignore similarity index 100% rename from enketo-express/.dockerignore rename to packages/enketo-express/.dockerignore diff --git a/enketo-express/.editorconfig b/packages/enketo-express/.editorconfig similarity index 100% rename from enketo-express/.editorconfig rename to packages/enketo-express/.editorconfig diff --git a/enketo-express/.eslintrc.json b/packages/enketo-express/.eslintrc.json similarity index 100% rename from enketo-express/.eslintrc.json rename to packages/enketo-express/.eslintrc.json diff --git a/enketo-express/.github/ISSUE_TEMPLATE/bug_report.md b/packages/enketo-express/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from enketo-express/.github/ISSUE_TEMPLATE/bug_report.md rename to packages/enketo-express/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/enketo-express/.github/ISSUE_TEMPLATE/feature_request.md b/packages/enketo-express/.github/ISSUE_TEMPLATE/feature_request.md similarity index 100% rename from enketo-express/.github/ISSUE_TEMPLATE/feature_request.md rename to packages/enketo-express/.github/ISSUE_TEMPLATE/feature_request.md diff --git a/enketo-express/.github/workflows/docker-hub.yml b/packages/enketo-express/.github/workflows/docker-hub.yml similarity index 100% rename from enketo-express/.github/workflows/docker-hub.yml rename to packages/enketo-express/.github/workflows/docker-hub.yml diff --git a/enketo-express/.github/workflows/ghrc.yml b/packages/enketo-express/.github/workflows/ghrc.yml similarity index 100% rename from enketo-express/.github/workflows/ghrc.yml rename to packages/enketo-express/.github/workflows/ghrc.yml diff --git a/enketo-express/.gitignore b/packages/enketo-express/.gitignore similarity index 100% rename from enketo-express/.gitignore rename to packages/enketo-express/.gitignore diff --git a/enketo-express/.travis.yml b/packages/enketo-express/.travis.yml similarity index 100% rename from enketo-express/.travis.yml rename to packages/enketo-express/.travis.yml diff --git a/enketo-express/.vscode/launch.json b/packages/enketo-express/.vscode/launch.json similarity index 100% rename from enketo-express/.vscode/launch.json rename to packages/enketo-express/.vscode/launch.json diff --git a/enketo-express/.vscode/settings.json b/packages/enketo-express/.vscode/settings.json similarity index 100% rename from enketo-express/.vscode/settings.json rename to packages/enketo-express/.vscode/settings.json diff --git a/enketo-express/.vscode/tasks.json b/packages/enketo-express/.vscode/tasks.json similarity index 100% rename from enketo-express/.vscode/tasks.json rename to packages/enketo-express/.vscode/tasks.json diff --git a/enketo-express/CHANGELOG.md b/packages/enketo-express/CHANGELOG.md similarity index 100% rename from enketo-express/CHANGELOG.md rename to packages/enketo-express/CHANGELOG.md diff --git a/enketo-express/Dockerfile b/packages/enketo-express/Dockerfile similarity index 100% rename from enketo-express/Dockerfile rename to packages/enketo-express/Dockerfile diff --git a/enketo-express/Gruntfile.js b/packages/enketo-express/Gruntfile.js similarity index 100% rename from enketo-express/Gruntfile.js rename to packages/enketo-express/Gruntfile.js diff --git a/enketo-express/LICENSE b/packages/enketo-express/LICENSE similarity index 100% rename from enketo-express/LICENSE rename to packages/enketo-express/LICENSE diff --git a/enketo-express/README.md b/packages/enketo-express/README.md similarity index 100% rename from enketo-express/README.md rename to packages/enketo-express/README.md diff --git a/enketo-express/Vagrantfile b/packages/enketo-express/Vagrantfile similarity index 100% rename from enketo-express/Vagrantfile rename to packages/enketo-express/Vagrantfile diff --git a/enketo-express/app.js b/packages/enketo-express/app.js similarity index 100% rename from enketo-express/app.js rename to packages/enketo-express/app.js diff --git a/enketo-express/app/controllers/api-controller.js b/packages/enketo-express/app/controllers/api-controller.js similarity index 100% rename from enketo-express/app/controllers/api-controller.js rename to packages/enketo-express/app/controllers/api-controller.js diff --git a/enketo-express/app/controllers/api-v1-controller.js b/packages/enketo-express/app/controllers/api-v1-controller.js similarity index 100% rename from enketo-express/app/controllers/api-v1-controller.js rename to packages/enketo-express/app/controllers/api-v1-controller.js diff --git a/enketo-express/app/controllers/api-v2-controller.js b/packages/enketo-express/app/controllers/api-v2-controller.js similarity index 100% rename from enketo-express/app/controllers/api-v2-controller.js rename to packages/enketo-express/app/controllers/api-v2-controller.js diff --git a/enketo-express/app/controllers/authentication-controller.js b/packages/enketo-express/app/controllers/authentication-controller.js similarity index 100% rename from enketo-express/app/controllers/authentication-controller.js rename to packages/enketo-express/app/controllers/authentication-controller.js diff --git a/enketo-express/app/controllers/error-handler.js b/packages/enketo-express/app/controllers/error-handler.js similarity index 100% rename from enketo-express/app/controllers/error-handler.js rename to packages/enketo-express/app/controllers/error-handler.js diff --git a/enketo-express/app/controllers/media-controller.js b/packages/enketo-express/app/controllers/media-controller.js similarity index 100% rename from enketo-express/app/controllers/media-controller.js rename to packages/enketo-express/app/controllers/media-controller.js diff --git a/enketo-express/app/controllers/offline-controller.js b/packages/enketo-express/app/controllers/offline-controller.js similarity index 100% rename from enketo-express/app/controllers/offline-controller.js rename to packages/enketo-express/app/controllers/offline-controller.js diff --git a/enketo-express/app/controllers/pages-controller.js b/packages/enketo-express/app/controllers/pages-controller.js similarity index 100% rename from enketo-express/app/controllers/pages-controller.js rename to packages/enketo-express/app/controllers/pages-controller.js diff --git a/enketo-express/app/controllers/submission-controller.js b/packages/enketo-express/app/controllers/submission-controller.js similarity index 100% rename from enketo-express/app/controllers/submission-controller.js rename to packages/enketo-express/app/controllers/submission-controller.js diff --git a/enketo-express/app/controllers/survey-controller.js b/packages/enketo-express/app/controllers/survey-controller.js similarity index 100% rename from enketo-express/app/controllers/survey-controller.js rename to packages/enketo-express/app/controllers/survey-controller.js diff --git a/enketo-express/app/controllers/transformation-controller.js b/packages/enketo-express/app/controllers/transformation-controller.js similarity index 100% rename from enketo-express/app/controllers/transformation-controller.js rename to packages/enketo-express/app/controllers/transformation-controller.js diff --git a/enketo-express/app/lib/communicator/communicator.js b/packages/enketo-express/app/lib/communicator/communicator.js similarity index 100% rename from enketo-express/app/lib/communicator/communicator.js rename to packages/enketo-express/app/lib/communicator/communicator.js diff --git a/enketo-express/app/lib/communicator/package.json b/packages/enketo-express/app/lib/communicator/package.json similarity index 100% rename from enketo-express/app/lib/communicator/package.json rename to packages/enketo-express/app/lib/communicator/package.json diff --git a/enketo-express/app/lib/custom-error.js b/packages/enketo-express/app/lib/custom-error.js similarity index 100% rename from enketo-express/app/lib/custom-error.js rename to packages/enketo-express/app/lib/custom-error.js diff --git a/enketo-express/app/lib/font-awesome/README.md b/packages/enketo-express/app/lib/font-awesome/README.md similarity index 100% rename from enketo-express/app/lib/font-awesome/README.md rename to packages/enketo-express/app/lib/font-awesome/README.md diff --git a/enketo-express/app/lib/font-awesome/scss/_animated.scss b/packages/enketo-express/app/lib/font-awesome/scss/_animated.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_animated.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_animated.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_bordered-pulled.scss b/packages/enketo-express/app/lib/font-awesome/scss/_bordered-pulled.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_bordered-pulled.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_bordered-pulled.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_core.scss b/packages/enketo-express/app/lib/font-awesome/scss/_core.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_core.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_core.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_fixed-width.scss b/packages/enketo-express/app/lib/font-awesome/scss/_fixed-width.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_fixed-width.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_fixed-width.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_icons.scss b/packages/enketo-express/app/lib/font-awesome/scss/_icons.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_icons.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_icons.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_larger.scss b/packages/enketo-express/app/lib/font-awesome/scss/_larger.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_larger.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_larger.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_list.scss b/packages/enketo-express/app/lib/font-awesome/scss/_list.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_list.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_list.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_mixins.scss b/packages/enketo-express/app/lib/font-awesome/scss/_mixins.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_mixins.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_mixins.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_path.scss b/packages/enketo-express/app/lib/font-awesome/scss/_path.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_path.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_path.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_rotated-flipped.scss b/packages/enketo-express/app/lib/font-awesome/scss/_rotated-flipped.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_rotated-flipped.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_rotated-flipped.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_screen-reader.scss b/packages/enketo-express/app/lib/font-awesome/scss/_screen-reader.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_screen-reader.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_screen-reader.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_stacked.scss b/packages/enketo-express/app/lib/font-awesome/scss/_stacked.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_stacked.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_stacked.scss diff --git a/enketo-express/app/lib/font-awesome/scss/_variables.scss b/packages/enketo-express/app/lib/font-awesome/scss/_variables.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/_variables.scss rename to packages/enketo-express/app/lib/font-awesome/scss/_variables.scss diff --git a/enketo-express/app/lib/font-awesome/scss/font-awesome.scss b/packages/enketo-express/app/lib/font-awesome/scss/font-awesome.scss similarity index 100% rename from enketo-express/app/lib/font-awesome/scss/font-awesome.scss rename to packages/enketo-express/app/lib/font-awesome/scss/font-awesome.scss diff --git a/enketo-express/app/lib/pdf.js b/packages/enketo-express/app/lib/pdf.js similarity index 100% rename from enketo-express/app/lib/pdf.js rename to packages/enketo-express/app/lib/pdf.js diff --git a/enketo-express/app/lib/readme.md b/packages/enketo-express/app/lib/readme.md similarity index 100% rename from enketo-express/app/lib/readme.md rename to packages/enketo-express/app/lib/readme.md diff --git a/enketo-express/app/lib/router-utils.js b/packages/enketo-express/app/lib/router-utils.js similarity index 100% rename from enketo-express/app/lib/router-utils.js rename to packages/enketo-express/app/lib/router-utils.js diff --git a/enketo-express/app/lib/utils.js b/packages/enketo-express/app/lib/utils.js similarity index 100% rename from enketo-express/app/lib/utils.js rename to packages/enketo-express/app/lib/utils.js diff --git a/enketo-express/app/models/account-model.js b/packages/enketo-express/app/models/account-model.js similarity index 100% rename from enketo-express/app/models/account-model.js rename to packages/enketo-express/app/models/account-model.js diff --git a/enketo-express/app/models/cache-model.js b/packages/enketo-express/app/models/cache-model.js similarity index 100% rename from enketo-express/app/models/cache-model.js rename to packages/enketo-express/app/models/cache-model.js diff --git a/enketo-express/app/models/config-model.js b/packages/enketo-express/app/models/config-model.js similarity index 100% rename from enketo-express/app/models/config-model.js rename to packages/enketo-express/app/models/config-model.js diff --git a/enketo-express/app/models/instance-model.js b/packages/enketo-express/app/models/instance-model.js similarity index 100% rename from enketo-express/app/models/instance-model.js rename to packages/enketo-express/app/models/instance-model.js diff --git a/enketo-express/app/models/record-model.js b/packages/enketo-express/app/models/record-model.js similarity index 100% rename from enketo-express/app/models/record-model.js rename to packages/enketo-express/app/models/record-model.js diff --git a/enketo-express/app/models/submission-model.js b/packages/enketo-express/app/models/submission-model.js similarity index 100% rename from enketo-express/app/models/submission-model.js rename to packages/enketo-express/app/models/submission-model.js diff --git a/enketo-express/app/models/survey-model.js b/packages/enketo-express/app/models/survey-model.js similarity index 100% rename from enketo-express/app/models/survey-model.js rename to packages/enketo-express/app/models/survey-model.js diff --git a/enketo-express/app/models/user-model.js b/packages/enketo-express/app/models/user-model.js similarity index 100% rename from enketo-express/app/models/user-model.js rename to packages/enketo-express/app/models/user-model.js diff --git a/enketo-express/app/views/component/analytics.pug b/packages/enketo-express/app/views/component/analytics.pug similarity index 100% rename from enketo-express/app/views/component/analytics.pug rename to packages/enketo-express/app/views/component/analytics.pug diff --git a/enketo-express/app/views/component/google-analytics.pug b/packages/enketo-express/app/views/component/google-analytics.pug similarity index 100% rename from enketo-express/app/views/component/google-analytics.pug rename to packages/enketo-express/app/views/component/google-analytics.pug diff --git a/enketo-express/app/views/component/piwik-analytics.pug b/packages/enketo-express/app/views/component/piwik-analytics.pug similarity index 100% rename from enketo-express/app/views/component/piwik-analytics.pug rename to packages/enketo-express/app/views/component/piwik-analytics.pug diff --git a/enketo-express/app/views/error.pug b/packages/enketo-express/app/views/error.pug similarity index 100% rename from enketo-express/app/views/error.pug rename to packages/enketo-express/app/views/error.pug diff --git a/enketo-express/app/views/index.pug b/packages/enketo-express/app/views/index.pug similarity index 100% rename from enketo-express/app/views/index.pug rename to packages/enketo-express/app/views/index.pug diff --git a/enketo-express/app/views/layout.pug b/packages/enketo-express/app/views/layout.pug similarity index 100% rename from enketo-express/app/views/layout.pug rename to packages/enketo-express/app/views/layout.pug diff --git a/enketo-express/app/views/pages/modern-browsers.pug b/packages/enketo-express/app/views/pages/modern-browsers.pug similarity index 100% rename from enketo-express/app/views/pages/modern-browsers.pug rename to packages/enketo-express/app/views/pages/modern-browsers.pug diff --git a/enketo-express/app/views/pages/offline.pug b/packages/enketo-express/app/views/pages/offline.pug similarity index 100% rename from enketo-express/app/views/pages/offline.pug rename to packages/enketo-express/app/views/pages/offline.pug diff --git a/enketo-express/app/views/styles/common.scss b/packages/enketo-express/app/views/styles/common.scss similarity index 100% rename from enketo-express/app/views/styles/common.scss rename to packages/enketo-express/app/views/styles/common.scss diff --git a/enketo-express/app/views/styles/component/_alert.scss b/packages/enketo-express/app/views/styles/component/_alert.scss similarity index 100% rename from enketo-express/app/views/styles/component/_alert.scss rename to packages/enketo-express/app/views/styles/component/_alert.scss diff --git a/enketo-express/app/views/styles/component/_buttons.scss b/packages/enketo-express/app/views/styles/component/_buttons.scss similarity index 100% rename from enketo-express/app/views/styles/component/_buttons.scss rename to packages/enketo-express/app/views/styles/component/_buttons.scss diff --git a/enketo-express/app/views/styles/component/_common-ui.scss b/packages/enketo-express/app/views/styles/component/_common-ui.scss similarity index 100% rename from enketo-express/app/views/styles/component/_common-ui.scss rename to packages/enketo-express/app/views/styles/component/_common-ui.scss diff --git a/enketo-express/app/views/styles/component/_feedback-bar.scss b/packages/enketo-express/app/views/styles/component/_feedback-bar.scss similarity index 100% rename from enketo-express/app/views/styles/component/_feedback-bar.scss rename to packages/enketo-express/app/views/styles/component/_feedback-bar.scss diff --git a/enketo-express/app/views/styles/component/_fonts.scss b/packages/enketo-express/app/views/styles/component/_fonts.scss similarity index 100% rename from enketo-express/app/views/styles/component/_fonts.scss rename to packages/enketo-express/app/views/styles/component/_fonts.scss diff --git a/enketo-express/app/views/styles/component/_form_footer.scss b/packages/enketo-express/app/views/styles/component/_form_footer.scss similarity index 100% rename from enketo-express/app/views/styles/component/_form_footer.scss rename to packages/enketo-express/app/views/styles/component/_form_footer.scss diff --git a/enketo-express/app/views/styles/component/_form_header.scss b/packages/enketo-express/app/views/styles/component/_form_header.scss similarity index 100% rename from enketo-express/app/views/styles/component/_form_header.scss rename to packages/enketo-express/app/views/styles/component/_form_header.scss diff --git a/enketo-express/app/views/styles/component/_icons.scss b/packages/enketo-express/app/views/styles/component/_icons.scss similarity index 100% rename from enketo-express/app/views/styles/component/_icons.scss rename to packages/enketo-express/app/views/styles/component/_icons.scss diff --git a/enketo-express/app/views/styles/component/_iframe.scss b/packages/enketo-express/app/views/styles/component/_iframe.scss similarity index 100% rename from enketo-express/app/views/styles/component/_iframe.scss rename to packages/enketo-express/app/views/styles/component/_iframe.scss diff --git a/enketo-express/app/views/styles/component/_mixins.scss b/packages/enketo-express/app/views/styles/component/_mixins.scss similarity index 100% rename from enketo-express/app/views/styles/component/_mixins.scss rename to packages/enketo-express/app/views/styles/component/_mixins.scss diff --git a/enketo-express/app/views/styles/component/_modal.scss b/packages/enketo-express/app/views/styles/component/_modal.scss similarity index 100% rename from enketo-express/app/views/styles/component/_modal.scss rename to packages/enketo-express/app/views/styles/component/_modal.scss diff --git a/enketo-express/app/views/styles/component/_notification.scss b/packages/enketo-express/app/views/styles/component/_notification.scss similarity index 100% rename from enketo-express/app/views/styles/component/_notification.scss rename to packages/enketo-express/app/views/styles/component/_notification.scss diff --git a/enketo-express/app/views/styles/component/_print.scss b/packages/enketo-express/app/views/styles/component/_print.scss similarity index 100% rename from enketo-express/app/views/styles/component/_print.scss rename to packages/enketo-express/app/views/styles/component/_print.scss diff --git a/enketo-express/app/views/styles/component/_side-slider.scss b/packages/enketo-express/app/views/styles/component/_side-slider.scss similarity index 100% rename from enketo-express/app/views/styles/component/_side-slider.scss rename to packages/enketo-express/app/views/styles/component/_side-slider.scss diff --git a/enketo-express/app/views/styles/component/_variables.scss b/packages/enketo-express/app/views/styles/component/_variables.scss similarity index 100% rename from enketo-express/app/views/styles/component/_variables.scss rename to packages/enketo-express/app/views/styles/component/_variables.scss diff --git a/enketo-express/app/views/styles/error.scss b/packages/enketo-express/app/views/styles/error.scss similarity index 100% rename from enketo-express/app/views/styles/error.scss rename to packages/enketo-express/app/views/styles/error.scss diff --git a/enketo-express/app/views/styles/index.scss b/packages/enketo-express/app/views/styles/index.scss similarity index 100% rename from enketo-express/app/views/styles/index.scss rename to packages/enketo-express/app/views/styles/index.scss diff --git a/enketo-express/app/views/styles/theme-formhub/_form_formhub.scss b/packages/enketo-express/app/views/styles/theme-formhub/_form_formhub.scss similarity index 100% rename from enketo-express/app/views/styles/theme-formhub/_form_formhub.scss rename to packages/enketo-express/app/views/styles/theme-formhub/_form_formhub.scss diff --git a/enketo-express/app/views/styles/theme-formhub/_variables.scss b/packages/enketo-express/app/views/styles/theme-formhub/_variables.scss similarity index 100% rename from enketo-express/app/views/styles/theme-formhub/_variables.scss rename to packages/enketo-express/app/views/styles/theme-formhub/_variables.scss diff --git a/enketo-express/app/views/styles/theme-formhub/theme-formhub.print.scss b/packages/enketo-express/app/views/styles/theme-formhub/theme-formhub.print.scss similarity index 100% rename from enketo-express/app/views/styles/theme-formhub/theme-formhub.print.scss rename to packages/enketo-express/app/views/styles/theme-formhub/theme-formhub.print.scss diff --git a/enketo-express/app/views/styles/theme-formhub/theme-formhub.scss b/packages/enketo-express/app/views/styles/theme-formhub/theme-formhub.scss similarity index 100% rename from enketo-express/app/views/styles/theme-formhub/theme-formhub.scss rename to packages/enketo-express/app/views/styles/theme-formhub/theme-formhub.scss diff --git a/enketo-express/app/views/styles/theme-grid/_form-grid.scss b/packages/enketo-express/app/views/styles/theme-grid/_form-grid.scss similarity index 100% rename from enketo-express/app/views/styles/theme-grid/_form-grid.scss rename to packages/enketo-express/app/views/styles/theme-grid/_form-grid.scss diff --git a/enketo-express/app/views/styles/theme-grid/theme-grid.print.scss b/packages/enketo-express/app/views/styles/theme-grid/theme-grid.print.scss similarity index 100% rename from enketo-express/app/views/styles/theme-grid/theme-grid.print.scss rename to packages/enketo-express/app/views/styles/theme-grid/theme-grid.print.scss diff --git a/enketo-express/app/views/styles/theme-grid/theme-grid.scss b/packages/enketo-express/app/views/styles/theme-grid/theme-grid.scss similarity index 100% rename from enketo-express/app/views/styles/theme-grid/theme-grid.scss rename to packages/enketo-express/app/views/styles/theme-grid/theme-grid.scss diff --git a/enketo-express/app/views/styles/theme-kobo/_variables.scss b/packages/enketo-express/app/views/styles/theme-kobo/_variables.scss similarity index 100% rename from enketo-express/app/views/styles/theme-kobo/_variables.scss rename to packages/enketo-express/app/views/styles/theme-kobo/_variables.scss diff --git a/enketo-express/app/views/styles/theme-kobo/theme-kobo.print.scss b/packages/enketo-express/app/views/styles/theme-kobo/theme-kobo.print.scss similarity index 100% rename from enketo-express/app/views/styles/theme-kobo/theme-kobo.print.scss rename to packages/enketo-express/app/views/styles/theme-kobo/theme-kobo.print.scss diff --git a/enketo-express/app/views/styles/theme-kobo/theme-kobo.scss b/packages/enketo-express/app/views/styles/theme-kobo/theme-kobo.scss similarity index 100% rename from enketo-express/app/views/styles/theme-kobo/theme-kobo.scss rename to packages/enketo-express/app/views/styles/theme-kobo/theme-kobo.scss diff --git a/enketo-express/app/views/styles/theme-plain/_form_plain.scss b/packages/enketo-express/app/views/styles/theme-plain/_form_plain.scss similarity index 100% rename from enketo-express/app/views/styles/theme-plain/_form_plain.scss rename to packages/enketo-express/app/views/styles/theme-plain/_form_plain.scss diff --git a/enketo-express/app/views/styles/theme-plain/theme-plain.print.scss b/packages/enketo-express/app/views/styles/theme-plain/theme-plain.print.scss similarity index 100% rename from enketo-express/app/views/styles/theme-plain/theme-plain.print.scss rename to packages/enketo-express/app/views/styles/theme-plain/theme-plain.print.scss diff --git a/enketo-express/app/views/styles/theme-plain/theme-plain.scss b/packages/enketo-express/app/views/styles/theme-plain/theme-plain.scss similarity index 100% rename from enketo-express/app/views/styles/theme-plain/theme-plain.scss rename to packages/enketo-express/app/views/styles/theme-plain/theme-plain.scss diff --git a/enketo-express/app/views/surveys/component/_enketo-power.pug b/packages/enketo-express/app/views/surveys/component/_enketo-power.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_enketo-power.pug rename to packages/enketo-express/app/views/surveys/component/_enketo-power.pug diff --git a/enketo-express/app/views/surveys/component/_feedback-bar.pug b/packages/enketo-express/app/views/surveys/component/_feedback-bar.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_feedback-bar.pug rename to packages/enketo-express/app/views/surveys/component/_feedback-bar.pug diff --git a/enketo-express/app/views/surveys/component/_form-footer.pug b/packages/enketo-express/app/views/surveys/component/_form-footer.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_form-footer.pug rename to packages/enketo-express/app/views/surveys/component/_form-footer.pug diff --git a/enketo-express/app/views/surveys/component/_form-header.pug b/packages/enketo-express/app/views/surveys/component/_form-header.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_form-header.pug rename to packages/enketo-express/app/views/surveys/component/_form-header.pug diff --git a/enketo-express/app/views/surveys/component/_logout.pug b/packages/enketo-express/app/views/surveys/component/_logout.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_logout.pug rename to packages/enketo-express/app/views/surveys/component/_logout.pug diff --git a/enketo-express/app/views/surveys/component/_notification.pug b/packages/enketo-express/app/views/surveys/component/_notification.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_notification.pug rename to packages/enketo-express/app/views/surveys/component/_notification.pug diff --git a/enketo-express/app/views/surveys/component/_side-slider.pug b/packages/enketo-express/app/views/surveys/component/_side-slider.pug similarity index 100% rename from enketo-express/app/views/surveys/component/_side-slider.pug rename to packages/enketo-express/app/views/surveys/component/_side-slider.pug diff --git a/enketo-express/app/views/surveys/component/redirect-IE.js b/packages/enketo-express/app/views/surveys/component/redirect-IE.js similarity index 100% rename from enketo-express/app/views/surveys/component/redirect-IE.js rename to packages/enketo-express/app/views/surveys/component/redirect-IE.js diff --git a/enketo-express/app/views/surveys/login.pug b/packages/enketo-express/app/views/surveys/login.pug similarity index 100% rename from enketo-express/app/views/surveys/login.pug rename to packages/enketo-express/app/views/surveys/login.pug diff --git a/enketo-express/app/views/surveys/logout.pug b/packages/enketo-express/app/views/surveys/logout.pug similarity index 100% rename from enketo-express/app/views/surveys/logout.pug rename to packages/enketo-express/app/views/surveys/logout.pug diff --git a/enketo-express/app/views/surveys/thanks.pug b/packages/enketo-express/app/views/surveys/thanks.pug similarity index 100% rename from enketo-express/app/views/surveys/thanks.pug rename to packages/enketo-express/app/views/surveys/thanks.pug diff --git a/enketo-express/app/views/surveys/webform-redirect.pug b/packages/enketo-express/app/views/surveys/webform-redirect.pug similarity index 100% rename from enketo-express/app/views/surveys/webform-redirect.pug rename to packages/enketo-express/app/views/surveys/webform-redirect.pug diff --git a/enketo-express/app/views/surveys/webform.pug b/packages/enketo-express/app/views/surveys/webform.pug similarity index 100% rename from enketo-express/app/views/surveys/webform.pug rename to packages/enketo-express/app/views/surveys/webform.pug diff --git a/enketo-express/config/build.js b/packages/enketo-express/config/build.js similarity index 100% rename from enketo-express/config/build.js rename to packages/enketo-express/config/build.js diff --git a/enketo-express/config/default-config.json b/packages/enketo-express/config/default-config.json similarity index 100% rename from enketo-express/config/default-config.json rename to packages/enketo-express/config/default-config.json diff --git a/enketo-express/config/express.js b/packages/enketo-express/config/express.js similarity index 100% rename from enketo-express/config/express.js rename to packages/enketo-express/config/express.js diff --git a/enketo-express/config/sample.env b/packages/enketo-express/config/sample.env similarity index 100% rename from enketo-express/config/sample.env rename to packages/enketo-express/config/sample.env diff --git a/enketo-express/docs/app_controllers_api-controller.js.html b/packages/enketo-express/docs/app_controllers_api-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_api-controller.js.html rename to packages/enketo-express/docs/app_controllers_api-controller.js.html diff --git a/enketo-express/docs/app_controllers_api-v1-controller.js.html b/packages/enketo-express/docs/app_controllers_api-v1-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_api-v1-controller.js.html rename to packages/enketo-express/docs/app_controllers_api-v1-controller.js.html diff --git a/enketo-express/docs/app_controllers_api-v2-controller.js.html b/packages/enketo-express/docs/app_controllers_api-v2-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_api-v2-controller.js.html rename to packages/enketo-express/docs/app_controllers_api-v2-controller.js.html diff --git a/enketo-express/docs/app_controllers_authentication-controller.js.html b/packages/enketo-express/docs/app_controllers_authentication-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_authentication-controller.js.html rename to packages/enketo-express/docs/app_controllers_authentication-controller.js.html diff --git a/enketo-express/docs/app_controllers_error-handler.js.html b/packages/enketo-express/docs/app_controllers_error-handler.js.html similarity index 100% rename from enketo-express/docs/app_controllers_error-handler.js.html rename to packages/enketo-express/docs/app_controllers_error-handler.js.html diff --git a/enketo-express/docs/app_controllers_media-controller.js.html b/packages/enketo-express/docs/app_controllers_media-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_media-controller.js.html rename to packages/enketo-express/docs/app_controllers_media-controller.js.html diff --git a/enketo-express/docs/app_controllers_offline-controller.js.html b/packages/enketo-express/docs/app_controllers_offline-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_offline-controller.js.html rename to packages/enketo-express/docs/app_controllers_offline-controller.js.html diff --git a/enketo-express/docs/app_controllers_pages-controller.js.html b/packages/enketo-express/docs/app_controllers_pages-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_pages-controller.js.html rename to packages/enketo-express/docs/app_controllers_pages-controller.js.html diff --git a/enketo-express/docs/app_controllers_submission-controller.js.html b/packages/enketo-express/docs/app_controllers_submission-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_submission-controller.js.html rename to packages/enketo-express/docs/app_controllers_submission-controller.js.html diff --git a/enketo-express/docs/app_controllers_survey-controller.js.html b/packages/enketo-express/docs/app_controllers_survey-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_survey-controller.js.html rename to packages/enketo-express/docs/app_controllers_survey-controller.js.html diff --git a/enketo-express/docs/app_controllers_transformation-controller.js.html b/packages/enketo-express/docs/app_controllers_transformation-controller.js.html similarity index 100% rename from enketo-express/docs/app_controllers_transformation-controller.js.html rename to packages/enketo-express/docs/app_controllers_transformation-controller.js.html diff --git a/enketo-express/docs/app_lib_communicator_communicator.js.html b/packages/enketo-express/docs/app_lib_communicator_communicator.js.html similarity index 100% rename from enketo-express/docs/app_lib_communicator_communicator.js.html rename to packages/enketo-express/docs/app_lib_communicator_communicator.js.html diff --git a/enketo-express/docs/app_lib_custom-error.js.html b/packages/enketo-express/docs/app_lib_custom-error.js.html similarity index 100% rename from enketo-express/docs/app_lib_custom-error.js.html rename to packages/enketo-express/docs/app_lib_custom-error.js.html diff --git a/enketo-express/docs/app_lib_pdf.js.html b/packages/enketo-express/docs/app_lib_pdf.js.html similarity index 100% rename from enketo-express/docs/app_lib_pdf.js.html rename to packages/enketo-express/docs/app_lib_pdf.js.html diff --git a/enketo-express/docs/app_lib_router-utils.js.html b/packages/enketo-express/docs/app_lib_router-utils.js.html similarity index 100% rename from enketo-express/docs/app_lib_router-utils.js.html rename to packages/enketo-express/docs/app_lib_router-utils.js.html diff --git a/enketo-express/docs/app_lib_utils.js.html b/packages/enketo-express/docs/app_lib_utils.js.html similarity index 100% rename from enketo-express/docs/app_lib_utils.js.html rename to packages/enketo-express/docs/app_lib_utils.js.html diff --git a/enketo-express/docs/app_models_account-model.js.html b/packages/enketo-express/docs/app_models_account-model.js.html similarity index 100% rename from enketo-express/docs/app_models_account-model.js.html rename to packages/enketo-express/docs/app_models_account-model.js.html diff --git a/enketo-express/docs/app_models_cache-model.js.html b/packages/enketo-express/docs/app_models_cache-model.js.html similarity index 100% rename from enketo-express/docs/app_models_cache-model.js.html rename to packages/enketo-express/docs/app_models_cache-model.js.html diff --git a/enketo-express/docs/app_models_config-model.js.html b/packages/enketo-express/docs/app_models_config-model.js.html similarity index 100% rename from enketo-express/docs/app_models_config-model.js.html rename to packages/enketo-express/docs/app_models_config-model.js.html diff --git a/enketo-express/docs/app_models_instance-model.js.html b/packages/enketo-express/docs/app_models_instance-model.js.html similarity index 100% rename from enketo-express/docs/app_models_instance-model.js.html rename to packages/enketo-express/docs/app_models_instance-model.js.html diff --git a/enketo-express/docs/app_models_record-model.js.html b/packages/enketo-express/docs/app_models_record-model.js.html similarity index 100% rename from enketo-express/docs/app_models_record-model.js.html rename to packages/enketo-express/docs/app_models_record-model.js.html diff --git a/enketo-express/docs/app_models_submission-model.js.html b/packages/enketo-express/docs/app_models_submission-model.js.html similarity index 100% rename from enketo-express/docs/app_models_submission-model.js.html rename to packages/enketo-express/docs/app_models_submission-model.js.html diff --git a/enketo-express/docs/app_models_survey-model.js.html b/packages/enketo-express/docs/app_models_survey-model.js.html similarity index 100% rename from enketo-express/docs/app_models_survey-model.js.html rename to packages/enketo-express/docs/app_models_survey-model.js.html diff --git a/enketo-express/docs/app_models_user-model.js.html b/packages/enketo-express/docs/app_models_user-model.js.html similarity index 100% rename from enketo-express/docs/app_models_user-model.js.html rename to packages/enketo-express/docs/app_models_user-model.js.html diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.eot b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.eot similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Bold.eot rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.eot diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.ttf b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.ttf similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Bold.ttf rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.ttf diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff2 b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff2 similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff2 rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Bold.woff2 diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.eot b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.eot similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Regular.eot rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.eot diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.ttf b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.ttf similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Regular.ttf rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.ttf diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff diff --git a/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff2 b/packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff2 similarity index 100% rename from enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff2 rename to packages/enketo-express/docs/fonts/Montserrat/Montserrat-Regular.woff2 diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff diff --git a/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 b/packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 similarity index 100% rename from enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 rename to packages/enketo-express/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 diff --git a/enketo-express/docs/global.html b/packages/enketo-express/docs/global.html similarity index 100% rename from enketo-express/docs/global.html rename to packages/enketo-express/docs/global.html diff --git a/enketo-express/docs/index.html b/packages/enketo-express/docs/index.html similarity index 100% rename from enketo-express/docs/index.html rename to packages/enketo-express/docs/index.html diff --git a/enketo-express/docs/module-account-model.html b/packages/enketo-express/docs/module-account-model.html similarity index 100% rename from enketo-express/docs/module-account-model.html rename to packages/enketo-express/docs/module-account-model.html diff --git a/enketo-express/docs/module-api-controller.html b/packages/enketo-express/docs/module-api-controller.html similarity index 100% rename from enketo-express/docs/module-api-controller.html rename to packages/enketo-express/docs/module-api-controller.html diff --git a/enketo-express/docs/module-api-v1-controller.html b/packages/enketo-express/docs/module-api-v1-controller.html similarity index 100% rename from enketo-express/docs/module-api-v1-controller.html rename to packages/enketo-express/docs/module-api-v1-controller.html diff --git a/enketo-express/docs/module-api-v2-controller.html b/packages/enketo-express/docs/module-api-v2-controller.html similarity index 100% rename from enketo-express/docs/module-api-v2-controller.html rename to packages/enketo-express/docs/module-api-v2-controller.html diff --git a/enketo-express/docs/module-authentication-controller.html b/packages/enketo-express/docs/module-authentication-controller.html similarity index 100% rename from enketo-express/docs/module-authentication-controller.html rename to packages/enketo-express/docs/module-authentication-controller.html diff --git a/enketo-express/docs/module-cache-model.html b/packages/enketo-express/docs/module-cache-model.html similarity index 100% rename from enketo-express/docs/module-cache-model.html rename to packages/enketo-express/docs/module-cache-model.html diff --git a/enketo-express/docs/module-communicator.html b/packages/enketo-express/docs/module-communicator.html similarity index 100% rename from enketo-express/docs/module-communicator.html rename to packages/enketo-express/docs/module-communicator.html diff --git a/enketo-express/docs/module-config-model.html b/packages/enketo-express/docs/module-config-model.html similarity index 100% rename from enketo-express/docs/module-config-model.html rename to packages/enketo-express/docs/module-config-model.html diff --git a/enketo-express/docs/module-custom-error.html b/packages/enketo-express/docs/module-custom-error.html similarity index 100% rename from enketo-express/docs/module-custom-error.html rename to packages/enketo-express/docs/module-custom-error.html diff --git a/enketo-express/docs/module-duplicates.html b/packages/enketo-express/docs/module-duplicates.html similarity index 100% rename from enketo-express/docs/module-duplicates.html rename to packages/enketo-express/docs/module-duplicates.html diff --git a/enketo-express/docs/module-error-handler.html b/packages/enketo-express/docs/module-error-handler.html similarity index 100% rename from enketo-express/docs/module-error-handler.html rename to packages/enketo-express/docs/module-error-handler.html diff --git a/enketo-express/docs/module-instance-model.html b/packages/enketo-express/docs/module-instance-model.html similarity index 100% rename from enketo-express/docs/module-instance-model.html rename to packages/enketo-express/docs/module-instance-model.html diff --git a/enketo-express/docs/module-media-controller.html b/packages/enketo-express/docs/module-media-controller.html similarity index 100% rename from enketo-express/docs/module-media-controller.html rename to packages/enketo-express/docs/module-media-controller.html diff --git a/enketo-express/docs/module-offline-resources-controller.html b/packages/enketo-express/docs/module-offline-resources-controller.html similarity index 100% rename from enketo-express/docs/module-offline-resources-controller.html rename to packages/enketo-express/docs/module-offline-resources-controller.html diff --git a/enketo-express/docs/module-pages-controller.html b/packages/enketo-express/docs/module-pages-controller.html similarity index 100% rename from enketo-express/docs/module-pages-controller.html rename to packages/enketo-express/docs/module-pages-controller.html diff --git a/enketo-express/docs/module-pdf.html b/packages/enketo-express/docs/module-pdf.html similarity index 100% rename from enketo-express/docs/module-pdf.html rename to packages/enketo-express/docs/module-pdf.html diff --git a/enketo-express/docs/module-router-utils.html b/packages/enketo-express/docs/module-router-utils.html similarity index 100% rename from enketo-express/docs/module-router-utils.html rename to packages/enketo-express/docs/module-router-utils.html diff --git a/enketo-express/docs/module-submission-model.html b/packages/enketo-express/docs/module-submission-model.html similarity index 100% rename from enketo-express/docs/module-submission-model.html rename to packages/enketo-express/docs/module-submission-model.html diff --git a/enketo-express/docs/module-submissions-controller.html b/packages/enketo-express/docs/module-submissions-controller.html similarity index 100% rename from enketo-express/docs/module-submissions-controller.html rename to packages/enketo-express/docs/module-submissions-controller.html diff --git a/enketo-express/docs/module-survey-controller.html b/packages/enketo-express/docs/module-survey-controller.html similarity index 100% rename from enketo-express/docs/module-survey-controller.html rename to packages/enketo-express/docs/module-survey-controller.html diff --git a/enketo-express/docs/module-survey-model.html b/packages/enketo-express/docs/module-survey-model.html similarity index 100% rename from enketo-express/docs/module-survey-model.html rename to packages/enketo-express/docs/module-survey-model.html diff --git a/enketo-express/docs/module-transformation-controller.html b/packages/enketo-express/docs/module-transformation-controller.html similarity index 100% rename from enketo-express/docs/module-transformation-controller.html rename to packages/enketo-express/docs/module-transformation-controller.html diff --git a/enketo-express/docs/module-user-model.html b/packages/enketo-express/docs/module-user-model.html similarity index 100% rename from enketo-express/docs/module-user-model.html rename to packages/enketo-express/docs/module-user-model.html diff --git a/enketo-express/docs/module-utils.html b/packages/enketo-express/docs/module-utils.html similarity index 100% rename from enketo-express/docs/module-utils.html rename to packages/enketo-express/docs/module-utils.html diff --git a/enketo-express/docs/scripts/collapse.js b/packages/enketo-express/docs/scripts/collapse.js similarity index 100% rename from enketo-express/docs/scripts/collapse.js rename to packages/enketo-express/docs/scripts/collapse.js diff --git a/enketo-express/docs/scripts/linenumber.js b/packages/enketo-express/docs/scripts/linenumber.js similarity index 100% rename from enketo-express/docs/scripts/linenumber.js rename to packages/enketo-express/docs/scripts/linenumber.js diff --git a/enketo-express/docs/scripts/nav.js b/packages/enketo-express/docs/scripts/nav.js similarity index 100% rename from enketo-express/docs/scripts/nav.js rename to packages/enketo-express/docs/scripts/nav.js diff --git a/enketo-express/docs/scripts/polyfill.js b/packages/enketo-express/docs/scripts/polyfill.js similarity index 100% rename from enketo-express/docs/scripts/polyfill.js rename to packages/enketo-express/docs/scripts/polyfill.js diff --git a/enketo-express/docs/scripts/prettify/Apache-License-2.0.txt b/packages/enketo-express/docs/scripts/prettify/Apache-License-2.0.txt similarity index 100% rename from enketo-express/docs/scripts/prettify/Apache-License-2.0.txt rename to packages/enketo-express/docs/scripts/prettify/Apache-License-2.0.txt diff --git a/enketo-express/docs/scripts/prettify/lang-css.js b/packages/enketo-express/docs/scripts/prettify/lang-css.js similarity index 100% rename from enketo-express/docs/scripts/prettify/lang-css.js rename to packages/enketo-express/docs/scripts/prettify/lang-css.js diff --git a/enketo-express/docs/scripts/prettify/prettify.js b/packages/enketo-express/docs/scripts/prettify/prettify.js similarity index 100% rename from enketo-express/docs/scripts/prettify/prettify.js rename to packages/enketo-express/docs/scripts/prettify/prettify.js diff --git a/enketo-express/docs/scripts/search.js b/packages/enketo-express/docs/scripts/search.js similarity index 100% rename from enketo-express/docs/scripts/search.js rename to packages/enketo-express/docs/scripts/search.js diff --git a/enketo-express/docs/styles/jsdoc.css b/packages/enketo-express/docs/styles/jsdoc.css similarity index 100% rename from enketo-express/docs/styles/jsdoc.css rename to packages/enketo-express/docs/styles/jsdoc.css diff --git a/enketo-express/docs/styles/prettify.css b/packages/enketo-express/docs/styles/prettify.css similarity index 100% rename from enketo-express/docs/styles/prettify.css rename to packages/enketo-express/docs/styles/prettify.css diff --git a/enketo-express/docs/tools_duplicates.js.html b/packages/enketo-express/docs/tools_duplicates.js.html similarity index 100% rename from enketo-express/docs/tools_duplicates.js.html rename to packages/enketo-express/docs/tools_duplicates.js.html diff --git a/enketo-express/docs/tutorial-00-getting-started.html b/packages/enketo-express/docs/tutorial-00-getting-started.html similarity index 100% rename from enketo-express/docs/tutorial-00-getting-started.html rename to packages/enketo-express/docs/tutorial-00-getting-started.html diff --git a/enketo-express/docs/tutorial-02-heroku.html b/packages/enketo-express/docs/tutorial-02-heroku.html similarity index 100% rename from enketo-express/docs/tutorial-02-heroku.html rename to packages/enketo-express/docs/tutorial-02-heroku.html diff --git a/enketo-express/docs/tutorial-10-configure.html b/packages/enketo-express/docs/tutorial-10-configure.html similarity index 100% rename from enketo-express/docs/tutorial-10-configure.html rename to packages/enketo-express/docs/tutorial-10-configure.html diff --git a/enketo-express/docs/tutorial-12-ordinals.html b/packages/enketo-express/docs/tutorial-12-ordinals.html similarity index 100% rename from enketo-express/docs/tutorial-12-ordinals.html rename to packages/enketo-express/docs/tutorial-12-ordinals.html diff --git a/enketo-express/docs/tutorial-20-update.html b/packages/enketo-express/docs/tutorial-20-update.html similarity index 100% rename from enketo-express/docs/tutorial-20-update.html rename to packages/enketo-express/docs/tutorial-20-update.html diff --git a/enketo-express/docs/tutorial-30-develop.html b/packages/enketo-express/docs/tutorial-30-develop.html similarity index 100% rename from enketo-express/docs/tutorial-30-develop.html rename to packages/enketo-express/docs/tutorial-30-develop.html diff --git a/enketo-express/docs/tutorial-32-api.html b/packages/enketo-express/docs/tutorial-32-api.html similarity index 100% rename from enketo-express/docs/tutorial-32-api.html rename to packages/enketo-express/docs/tutorial-32-api.html diff --git a/enketo-express/docs/tutorial-34-custom-widgets.html b/packages/enketo-express/docs/tutorial-34-custom-widgets.html similarity index 100% rename from enketo-express/docs/tutorial-34-custom-widgets.html rename to packages/enketo-express/docs/tutorial-34-custom-widgets.html diff --git a/enketo-express/docs/tutorial-36-theming.html b/packages/enketo-express/docs/tutorial-36-theming.html similarity index 100% rename from enketo-express/docs/tutorial-36-theming.html rename to packages/enketo-express/docs/tutorial-36-theming.html diff --git a/enketo-express/docs/tutorial-38-iframe-postmessage.html b/packages/enketo-express/docs/tutorial-38-iframe-postmessage.html similarity index 100% rename from enketo-express/docs/tutorial-38-iframe-postmessage.html rename to packages/enketo-express/docs/tutorial-38-iframe-postmessage.html diff --git a/enketo-express/docs/tutorial-40-translate.html b/packages/enketo-express/docs/tutorial-40-translate.html similarity index 100% rename from enketo-express/docs/tutorial-40-translate.html rename to packages/enketo-express/docs/tutorial-40-translate.html diff --git a/enketo-express/docs/tutorial-60-authentication-and-security.html b/packages/enketo-express/docs/tutorial-60-authentication-and-security.html similarity index 100% rename from enketo-express/docs/tutorial-60-authentication-and-security.html rename to packages/enketo-express/docs/tutorial-60-authentication-and-security.html diff --git a/enketo-express/docs/tutorial-70-browser-support.html b/packages/enketo-express/docs/tutorial-70-browser-support.html similarity index 100% rename from enketo-express/docs/tutorial-70-browser-support.html rename to packages/enketo-express/docs/tutorial-70-browser-support.html diff --git a/enketo-express/docs/tutorial-80-comments.html b/packages/enketo-express/docs/tutorial-80-comments.html similarity index 100% rename from enketo-express/docs/tutorial-80-comments.html rename to packages/enketo-express/docs/tutorial-80-comments.html diff --git a/enketo-express/docs/tutorial-90-duplicates.html b/packages/enketo-express/docs/tutorial-90-duplicates.html similarity index 100% rename from enketo-express/docs/tutorial-90-duplicates.html rename to packages/enketo-express/docs/tutorial-90-duplicates.html diff --git a/enketo-express/i18next-parser.config.js b/packages/enketo-express/i18next-parser.config.js similarity index 100% rename from enketo-express/i18next-parser.config.js rename to packages/enketo-express/i18next-parser.config.js diff --git a/enketo-express/jsconfig.json b/packages/enketo-express/jsconfig.json similarity index 100% rename from enketo-express/jsconfig.json rename to packages/enketo-express/jsconfig.json diff --git a/enketo-express/jsdoc.config.js b/packages/enketo-express/jsdoc.config.js similarity index 100% rename from enketo-express/jsdoc.config.js rename to packages/enketo-express/jsdoc.config.js diff --git a/enketo-express/locales/src/ar/translation.json b/packages/enketo-express/locales/src/ar/translation.json similarity index 100% rename from enketo-express/locales/src/ar/translation.json rename to packages/enketo-express/locales/src/ar/translation.json diff --git a/enketo-express/locales/src/cs/translation.json b/packages/enketo-express/locales/src/cs/translation.json similarity index 100% rename from enketo-express/locales/src/cs/translation.json rename to packages/enketo-express/locales/src/cs/translation.json diff --git a/enketo-express/locales/src/de/translation.json b/packages/enketo-express/locales/src/de/translation.json similarity index 100% rename from enketo-express/locales/src/de/translation.json rename to packages/enketo-express/locales/src/de/translation.json diff --git a/enketo-express/locales/src/el/translation.json b/packages/enketo-express/locales/src/el/translation.json similarity index 100% rename from enketo-express/locales/src/el/translation.json rename to packages/enketo-express/locales/src/el/translation.json diff --git a/enketo-express/locales/src/en/'data.json b/packages/enketo-express/locales/src/en/'data.json similarity index 100% rename from enketo-express/locales/src/en/'data.json rename to packages/enketo-express/locales/src/en/'data.json diff --git a/enketo-express/locales/src/en/'data_old.json b/packages/enketo-express/locales/src/en/'data_old.json similarity index 100% rename from enketo-express/locales/src/en/'data_old.json rename to packages/enketo-express/locales/src/en/'data_old.json diff --git a/enketo-express/locales/src/en/translation.json b/packages/enketo-express/locales/src/en/translation.json similarity index 100% rename from enketo-express/locales/src/en/translation.json rename to packages/enketo-express/locales/src/en/translation.json diff --git a/enketo-express/locales/src/es/translation.json b/packages/enketo-express/locales/src/es/translation.json similarity index 100% rename from enketo-express/locales/src/es/translation.json rename to packages/enketo-express/locales/src/es/translation.json diff --git a/enketo-express/locales/src/fa/translation.json b/packages/enketo-express/locales/src/fa/translation.json similarity index 100% rename from enketo-express/locales/src/fa/translation.json rename to packages/enketo-express/locales/src/fa/translation.json diff --git a/enketo-express/locales/src/fi/translation.json b/packages/enketo-express/locales/src/fi/translation.json similarity index 100% rename from enketo-express/locales/src/fi/translation.json rename to packages/enketo-express/locales/src/fi/translation.json diff --git a/enketo-express/locales/src/fr/translation.json b/packages/enketo-express/locales/src/fr/translation.json similarity index 100% rename from enketo-express/locales/src/fr/translation.json rename to packages/enketo-express/locales/src/fr/translation.json diff --git a/enketo-express/locales/src/hi/translation.json b/packages/enketo-express/locales/src/hi/translation.json similarity index 100% rename from enketo-express/locales/src/hi/translation.json rename to packages/enketo-express/locales/src/hi/translation.json diff --git a/enketo-express/locales/src/it/translation.json b/packages/enketo-express/locales/src/it/translation.json similarity index 100% rename from enketo-express/locales/src/it/translation.json rename to packages/enketo-express/locales/src/it/translation.json diff --git a/enketo-express/locales/src/ka/translation.json b/packages/enketo-express/locales/src/ka/translation.json similarity index 100% rename from enketo-express/locales/src/ka/translation.json rename to packages/enketo-express/locales/src/ka/translation.json diff --git a/enketo-express/locales/src/lo/translation.json b/packages/enketo-express/locales/src/lo/translation.json similarity index 100% rename from enketo-express/locales/src/lo/translation.json rename to packages/enketo-express/locales/src/lo/translation.json diff --git a/enketo-express/locales/src/nl/translation.json b/packages/enketo-express/locales/src/nl/translation.json similarity index 100% rename from enketo-express/locales/src/nl/translation.json rename to packages/enketo-express/locales/src/nl/translation.json diff --git a/enketo-express/locales/src/no/translation.json b/packages/enketo-express/locales/src/no/translation.json similarity index 100% rename from enketo-express/locales/src/no/translation.json rename to packages/enketo-express/locales/src/no/translation.json diff --git a/enketo-express/locales/src/pl/translation.json b/packages/enketo-express/locales/src/pl/translation.json similarity index 100% rename from enketo-express/locales/src/pl/translation.json rename to packages/enketo-express/locales/src/pl/translation.json diff --git a/enketo-express/locales/src/pt/translation.json b/packages/enketo-express/locales/src/pt/translation.json similarity index 100% rename from enketo-express/locales/src/pt/translation.json rename to packages/enketo-express/locales/src/pt/translation.json diff --git a/enketo-express/locales/src/ro/translation.json b/packages/enketo-express/locales/src/ro/translation.json similarity index 100% rename from enketo-express/locales/src/ro/translation.json rename to packages/enketo-express/locales/src/ro/translation.json diff --git a/enketo-express/locales/src/ru/translation.json b/packages/enketo-express/locales/src/ru/translation.json similarity index 100% rename from enketo-express/locales/src/ru/translation.json rename to packages/enketo-express/locales/src/ru/translation.json diff --git a/enketo-express/locales/src/sk/translation.json b/packages/enketo-express/locales/src/sk/translation.json similarity index 100% rename from enketo-express/locales/src/sk/translation.json rename to packages/enketo-express/locales/src/sk/translation.json diff --git a/enketo-express/locales/src/sq/translation.json b/packages/enketo-express/locales/src/sq/translation.json similarity index 100% rename from enketo-express/locales/src/sq/translation.json rename to packages/enketo-express/locales/src/sq/translation.json diff --git a/enketo-express/locales/src/sv/translation.json b/packages/enketo-express/locales/src/sv/translation.json similarity index 100% rename from enketo-express/locales/src/sv/translation.json rename to packages/enketo-express/locales/src/sv/translation.json diff --git a/enketo-express/locales/src/sw/translation.json b/packages/enketo-express/locales/src/sw/translation.json similarity index 100% rename from enketo-express/locales/src/sw/translation.json rename to packages/enketo-express/locales/src/sw/translation.json diff --git a/enketo-express/locales/src/tr/translation.json b/packages/enketo-express/locales/src/tr/translation.json similarity index 100% rename from enketo-express/locales/src/tr/translation.json rename to packages/enketo-express/locales/src/tr/translation.json diff --git a/enketo-express/locales/src/vi/translation.json b/packages/enketo-express/locales/src/vi/translation.json similarity index 100% rename from enketo-express/locales/src/vi/translation.json rename to packages/enketo-express/locales/src/vi/translation.json diff --git a/enketo-express/locales/src/zh/translation.json b/packages/enketo-express/locales/src/zh/translation.json similarity index 100% rename from enketo-express/locales/src/zh/translation.json rename to packages/enketo-express/locales/src/zh/translation.json diff --git a/enketo-express/logs/README.md b/packages/enketo-express/logs/README.md similarity index 100% rename from enketo-express/logs/README.md rename to packages/enketo-express/logs/README.md diff --git a/enketo-express/package-lock.json b/packages/enketo-express/package-lock.json similarity index 100% rename from enketo-express/package-lock.json rename to packages/enketo-express/package-lock.json diff --git a/enketo-express/package.json b/packages/enketo-express/package.json similarity index 100% rename from enketo-express/package.json rename to packages/enketo-express/package.json diff --git a/enketo-express/public/.eslintrc.json b/packages/enketo-express/public/.eslintrc.json similarity index 100% rename from enketo-express/public/.eslintrc.json rename to packages/enketo-express/public/.eslintrc.json diff --git a/enketo-express/public/fonts/OpenSans-Bold-webfont.woff b/packages/enketo-express/public/fonts/OpenSans-Bold-webfont.woff similarity index 100% rename from enketo-express/public/fonts/OpenSans-Bold-webfont.woff rename to packages/enketo-express/public/fonts/OpenSans-Bold-webfont.woff diff --git a/enketo-express/public/fonts/OpenSans-Regular-webfont.woff b/packages/enketo-express/public/fonts/OpenSans-Regular-webfont.woff similarity index 100% rename from enketo-express/public/fonts/OpenSans-Regular-webfont.woff rename to packages/enketo-express/public/fonts/OpenSans-Regular-webfont.woff diff --git a/enketo-express/public/fonts/fontawesome-webfont.woff b/packages/enketo-express/public/fonts/fontawesome-webfont.woff similarity index 100% rename from enketo-express/public/fonts/fontawesome-webfont.woff rename to packages/enketo-express/public/fonts/fontawesome-webfont.woff diff --git a/enketo-express/public/images/favicon.ico b/packages/enketo-express/public/images/favicon.ico similarity index 100% rename from enketo-express/public/images/favicon.ico rename to packages/enketo-express/public/images/favicon.ico diff --git a/enketo-express/public/images/icon_180x180.png b/packages/enketo-express/public/images/icon_180x180.png similarity index 100% rename from enketo-express/public/images/icon_180x180.png rename to packages/enketo-express/public/images/icon_180x180.png diff --git a/enketo-express/public/images/offline-enabled.png b/packages/enketo-express/public/images/offline-enabled.png similarity index 100% rename from enketo-express/public/images/offline-enabled.png rename to packages/enketo-express/public/images/offline-enabled.png diff --git a/enketo-express/public/js/src/enketo-offline-fallback.js b/packages/enketo-express/public/js/src/enketo-offline-fallback.js similarity index 100% rename from enketo-express/public/js/src/enketo-offline-fallback.js rename to packages/enketo-express/public/js/src/enketo-offline-fallback.js diff --git a/enketo-express/public/js/src/enketo-webform-edit.js b/packages/enketo-express/public/js/src/enketo-webform-edit.js similarity index 100% rename from enketo-express/public/js/src/enketo-webform-edit.js rename to packages/enketo-express/public/js/src/enketo-webform-edit.js diff --git a/enketo-express/public/js/src/enketo-webform-view.js b/packages/enketo-express/public/js/src/enketo-webform-view.js similarity index 100% rename from enketo-express/public/js/src/enketo-webform-view.js rename to packages/enketo-express/public/js/src/enketo-webform-view.js diff --git a/enketo-express/public/js/src/enketo-webform.js b/packages/enketo-express/public/js/src/enketo-webform.js similarity index 100% rename from enketo-express/public/js/src/enketo-webform.js rename to packages/enketo-express/public/js/src/enketo-webform.js diff --git a/enketo-express/public/js/src/module/application-cache.js b/packages/enketo-express/public/js/src/module/application-cache.js similarity index 100% rename from enketo-express/public/js/src/module/application-cache.js rename to packages/enketo-express/public/js/src/module/application-cache.js diff --git a/enketo-express/public/js/src/module/client-config.js b/packages/enketo-express/public/js/src/module/client-config.js similarity index 100% rename from enketo-express/public/js/src/module/client-config.js rename to packages/enketo-express/public/js/src/module/client-config.js diff --git a/enketo-express/public/js/src/module/connection.js b/packages/enketo-express/public/js/src/module/connection.js similarity index 100% rename from enketo-express/public/js/src/module/connection.js rename to packages/enketo-express/public/js/src/module/connection.js diff --git a/enketo-express/public/js/src/module/controller-webform.js b/packages/enketo-express/public/js/src/module/controller-webform.js similarity index 100% rename from enketo-express/public/js/src/module/controller-webform.js rename to packages/enketo-express/public/js/src/module/controller-webform.js diff --git a/enketo-express/public/js/src/module/core-widgets.json b/packages/enketo-express/public/js/src/module/core-widgets.json similarity index 100% rename from enketo-express/public/js/src/module/core-widgets.json rename to packages/enketo-express/public/js/src/module/core-widgets.json diff --git a/enketo-express/public/js/src/module/encryptor.js b/packages/enketo-express/public/js/src/module/encryptor.js similarity index 100% rename from enketo-express/public/js/src/module/encryptor.js rename to packages/enketo-express/public/js/src/module/encryptor.js diff --git a/enketo-express/public/js/src/module/event.js b/packages/enketo-express/public/js/src/module/event.js similarity index 100% rename from enketo-express/public/js/src/module/event.js rename to packages/enketo-express/public/js/src/module/event.js diff --git a/enketo-express/public/js/src/module/exporter.js b/packages/enketo-express/public/js/src/module/exporter.js similarity index 100% rename from enketo-express/public/js/src/module/exporter.js rename to packages/enketo-express/public/js/src/module/exporter.js diff --git a/enketo-express/public/js/src/module/file-manager.js b/packages/enketo-express/public/js/src/module/file-manager.js similarity index 100% rename from enketo-express/public/js/src/module/file-manager.js rename to packages/enketo-express/public/js/src/module/file-manager.js diff --git a/enketo-express/public/js/src/module/form-cache.js b/packages/enketo-express/public/js/src/module/form-cache.js similarity index 100% rename from enketo-express/public/js/src/module/form-cache.js rename to packages/enketo-express/public/js/src/module/form-cache.js diff --git a/enketo-express/public/js/src/module/form-controller.js b/packages/enketo-express/public/js/src/module/form-controller.js similarity index 100% rename from enketo-express/public/js/src/module/form-controller.js rename to packages/enketo-express/public/js/src/module/form-controller.js diff --git a/enketo-express/public/js/src/module/gui.js b/packages/enketo-express/public/js/src/module/gui.js similarity index 100% rename from enketo-express/public/js/src/module/gui.js rename to packages/enketo-express/public/js/src/module/gui.js diff --git a/enketo-express/public/js/src/module/last-saved.js b/packages/enketo-express/public/js/src/module/last-saved.js similarity index 100% rename from enketo-express/public/js/src/module/last-saved.js rename to packages/enketo-express/public/js/src/module/last-saved.js diff --git a/enketo-express/public/js/src/module/offline-app-worker-partial.js b/packages/enketo-express/public/js/src/module/offline-app-worker-partial.js similarity index 100% rename from enketo-express/public/js/src/module/offline-app-worker-partial.js rename to packages/enketo-express/public/js/src/module/offline-app-worker-partial.js diff --git a/enketo-express/public/js/src/module/plugin.js b/packages/enketo-express/public/js/src/module/plugin.js similarity index 100% rename from enketo-express/public/js/src/module/plugin.js rename to packages/enketo-express/public/js/src/module/plugin.js diff --git a/enketo-express/public/js/src/module/records-queue.js b/packages/enketo-express/public/js/src/module/records-queue.js similarity index 100% rename from enketo-express/public/js/src/module/records-queue.js rename to packages/enketo-express/public/js/src/module/records-queue.js diff --git a/enketo-express/public/js/src/module/settings.js b/packages/enketo-express/public/js/src/module/settings.js similarity index 100% rename from enketo-express/public/js/src/module/settings.js rename to packages/enketo-express/public/js/src/module/settings.js diff --git a/enketo-express/public/js/src/module/sniffer.js b/packages/enketo-express/public/js/src/module/sniffer.js similarity index 100% rename from enketo-express/public/js/src/module/sniffer.js rename to packages/enketo-express/public/js/src/module/sniffer.js diff --git a/enketo-express/public/js/src/module/store.js b/packages/enketo-express/public/js/src/module/store.js similarity index 100% rename from enketo-express/public/js/src/module/store.js rename to packages/enketo-express/public/js/src/module/store.js diff --git a/enketo-express/public/js/src/module/translator.js b/packages/enketo-express/public/js/src/module/translator.js similarity index 100% rename from enketo-express/public/js/src/module/translator.js rename to packages/enketo-express/public/js/src/module/translator.js diff --git a/enketo-express/public/js/src/module/utils.js b/packages/enketo-express/public/js/src/module/utils.js similarity index 100% rename from enketo-express/public/js/src/module/utils.js rename to packages/enketo-express/public/js/src/module/utils.js diff --git a/enketo-express/public/js/src/module/xml2json.js b/packages/enketo-express/public/js/src/module/xml2json.js similarity index 100% rename from enketo-express/public/js/src/module/xml2json.js rename to packages/enketo-express/public/js/src/module/xml2json.js diff --git a/enketo-express/scripts/build.js b/packages/enketo-express/scripts/build.js similarity index 100% rename from enketo-express/scripts/build.js rename to packages/enketo-express/scripts/build.js diff --git a/enketo-express/scripts/preinstall b/packages/enketo-express/scripts/preinstall similarity index 100% rename from enketo-express/scripts/preinstall rename to packages/enketo-express/scripts/preinstall diff --git a/enketo-express/setup/config/config.json b/packages/enketo-express/setup/config/config.json similarity index 100% rename from enketo-express/setup/config/config.json rename to packages/enketo-express/setup/config/config.json diff --git a/enketo-express/setup/config/logrotate.conf b/packages/enketo-express/setup/config/logrotate.conf similarity index 100% rename from enketo-express/setup/config/logrotate.conf rename to packages/enketo-express/setup/config/logrotate.conf diff --git a/enketo-express/setup/docker/.vols/css/common.css b/packages/enketo-express/setup/docker/.vols/css/common.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/common.css rename to packages/enketo-express/setup/docker/.vols/css/common.css diff --git a/enketo-express/setup/docker/.vols/css/error.css b/packages/enketo-express/setup/docker/.vols/css/error.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/error.css rename to packages/enketo-express/setup/docker/.vols/css/error.css diff --git a/enketo-express/setup/docker/.vols/css/index.css b/packages/enketo-express/setup/docker/.vols/css/index.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/index.css rename to packages/enketo-express/setup/docker/.vols/css/index.css diff --git a/enketo-express/setup/docker/.vols/css/theme-formhub.css b/packages/enketo-express/setup/docker/.vols/css/theme-formhub.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-formhub.css rename to packages/enketo-express/setup/docker/.vols/css/theme-formhub.css diff --git a/enketo-express/setup/docker/.vols/css/theme-formhub.print.css b/packages/enketo-express/setup/docker/.vols/css/theme-formhub.print.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-formhub.print.css rename to packages/enketo-express/setup/docker/.vols/css/theme-formhub.print.css diff --git a/enketo-express/setup/docker/.vols/css/theme-grid.css b/packages/enketo-express/setup/docker/.vols/css/theme-grid.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-grid.css rename to packages/enketo-express/setup/docker/.vols/css/theme-grid.css diff --git a/enketo-express/setup/docker/.vols/css/theme-grid.print.css b/packages/enketo-express/setup/docker/.vols/css/theme-grid.print.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-grid.print.css rename to packages/enketo-express/setup/docker/.vols/css/theme-grid.print.css diff --git a/enketo-express/setup/docker/.vols/css/theme-kobo.css b/packages/enketo-express/setup/docker/.vols/css/theme-kobo.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-kobo.css rename to packages/enketo-express/setup/docker/.vols/css/theme-kobo.css diff --git a/enketo-express/setup/docker/.vols/css/theme-kobo.print.css b/packages/enketo-express/setup/docker/.vols/css/theme-kobo.print.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-kobo.print.css rename to packages/enketo-express/setup/docker/.vols/css/theme-kobo.print.css diff --git a/enketo-express/setup/docker/.vols/css/theme-plain.css b/packages/enketo-express/setup/docker/.vols/css/theme-plain.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-plain.css rename to packages/enketo-express/setup/docker/.vols/css/theme-plain.css diff --git a/enketo-express/setup/docker/.vols/css/theme-plain.print.css b/packages/enketo-express/setup/docker/.vols/css/theme-plain.print.css similarity index 100% rename from enketo-express/setup/docker/.vols/css/theme-plain.print.css rename to packages/enketo-express/setup/docker/.vols/css/theme-plain.print.css diff --git a/enketo-express/setup/docker/apt_requirements.txt b/packages/enketo-express/setup/docker/apt_requirements.txt similarity index 100% rename from enketo-express/setup/docker/apt_requirements.txt rename to packages/enketo-express/setup/docker/apt_requirements.txt diff --git a/enketo-express/setup/docker/create_config.py b/packages/enketo-express/setup/docker/create_config.py similarity index 100% rename from enketo-express/setup/docker/create_config.py rename to packages/enketo-express/setup/docker/create_config.py diff --git a/enketo-express/setup/docker/docker-compose.yml b/packages/enketo-express/setup/docker/docker-compose.yml similarity index 100% rename from enketo-express/setup/docker/docker-compose.yml rename to packages/enketo-express/setup/docker/docker-compose.yml diff --git a/enketo-express/setup/docker/envfile.txt b/packages/enketo-express/setup/docker/envfile.txt similarity index 100% rename from enketo-express/setup/docker/envfile.txt rename to packages/enketo-express/setup/docker/envfile.txt diff --git a/enketo-express/setup/docker/nginx/enketo_express_location.conf.tmpl b/packages/enketo-express/setup/docker/nginx/enketo_express_location.conf.tmpl similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_location.conf.tmpl rename to packages/enketo-express/setup/docker/nginx/enketo_express_location.conf.tmpl diff --git a/enketo-express/setup/docker/nginx/enketo_express_location_uri_prefix.conf.tmpl b/packages/enketo-express/setup/docker/nginx/enketo_express_location_uri_prefix.conf.tmpl similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_location_uri_prefix.conf.tmpl rename to packages/enketo-express/setup/docker/nginx/enketo_express_location_uri_prefix.conf.tmpl diff --git a/enketo-express/setup/docker/nginx/enketo_express_proxy_pass.conf b/packages/enketo-express/setup/docker/nginx/enketo_express_proxy_pass.conf similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_proxy_pass.conf rename to packages/enketo-express/setup/docker/nginx/enketo_express_proxy_pass.conf diff --git a/enketo-express/setup/docker/nginx/enketo_express_rewrite_response_reference_rules.conf.tmpl b/packages/enketo-express/setup/docker/nginx/enketo_express_rewrite_response_reference_rules.conf.tmpl similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_rewrite_response_reference_rules.conf.tmpl rename to packages/enketo-express/setup/docker/nginx/enketo_express_rewrite_response_reference_rules.conf.tmpl diff --git a/enketo-express/setup/docker/nginx/enketo_express_site_http.conf b/packages/enketo-express/setup/docker/nginx/enketo_express_site_http.conf similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_site_http.conf rename to packages/enketo-express/setup/docker/nginx/enketo_express_site_http.conf diff --git a/enketo-express/setup/docker/nginx/enketo_express_site_https.conf b/packages/enketo-express/setup/docker/nginx/enketo_express_site_https.conf similarity index 100% rename from enketo-express/setup/docker/nginx/enketo_express_site_https.conf rename to packages/enketo-express/setup/docker/nginx/enketo_express_site_https.conf diff --git a/enketo-express/setup/docker/nginx/nginx_command.bash b/packages/enketo-express/setup/docker/nginx/nginx_command.bash similarity index 100% rename from enketo-express/setup/docker/nginx/nginx_command.bash rename to packages/enketo-express/setup/docker/nginx/nginx_command.bash diff --git a/enketo-express/setup/docker/redis_cache_data/dump.rdb b/packages/enketo-express/setup/docker/redis_cache_data/dump.rdb similarity index 100% rename from enketo-express/setup/docker/redis_cache_data/dump.rdb rename to packages/enketo-express/setup/docker/redis_cache_data/dump.rdb diff --git a/enketo-express/setup/docker/start.sh b/packages/enketo-express/setup/docker/start.sh similarity index 100% rename from enketo-express/setup/docker/start.sh rename to packages/enketo-express/setup/docker/start.sh diff --git a/enketo-express/setup/redis/conf/redis-enketo-cache.conf b/packages/enketo-express/setup/redis/conf/redis-enketo-cache.conf similarity index 100% rename from enketo-express/setup/redis/conf/redis-enketo-cache.conf rename to packages/enketo-express/setup/redis/conf/redis-enketo-cache.conf diff --git a/enketo-express/setup/redis/conf/redis-enketo-main.conf b/packages/enketo-express/setup/redis/conf/redis-enketo-main.conf similarity index 100% rename from enketo-express/setup/redis/conf/redis-enketo-main.conf rename to packages/enketo-express/setup/redis/conf/redis-enketo-main.conf diff --git a/enketo-express/setup/travis/travis-redis.sh b/packages/enketo-express/setup/travis/travis-redis.sh similarity index 100% rename from enketo-express/setup/travis/travis-redis.sh rename to packages/enketo-express/setup/travis/travis-redis.sh diff --git a/enketo-express/setup/vagrant/bootstrap.sh b/packages/enketo-express/setup/vagrant/bootstrap.sh similarity index 100% rename from enketo-express/setup/vagrant/bootstrap.sh rename to packages/enketo-express/setup/vagrant/bootstrap.sh diff --git a/enketo-express/test/client/.eslintrc.json b/packages/enketo-express/test/client/.eslintrc.json similarity index 100% rename from enketo-express/test/client/.eslintrc.json rename to packages/enketo-express/test/client/.eslintrc.json diff --git a/enketo-express/test/client/build.spec.js b/packages/enketo-express/test/client/build.spec.js similarity index 100% rename from enketo-express/test/client/build.spec.js rename to packages/enketo-express/test/client/build.spec.js diff --git a/enketo-express/test/client/config/karma.conf.js b/packages/enketo-express/test/client/config/karma.conf.js similarity index 100% rename from enketo-express/test/client/config/karma.conf.js rename to packages/enketo-express/test/client/config/karma.conf.js diff --git a/enketo-express/test/client/connection.spec.js b/packages/enketo-express/test/client/connection.spec.js similarity index 100% rename from enketo-express/test/client/connection.spec.js rename to packages/enketo-express/test/client/connection.spec.js diff --git a/enketo-express/test/client/encryptor.spec.js b/packages/enketo-express/test/client/encryptor.spec.js similarity index 100% rename from enketo-express/test/client/encryptor.spec.js rename to packages/enketo-express/test/client/encryptor.spec.js diff --git a/enketo-express/test/client/feature/last-saved.spec.js b/packages/enketo-express/test/client/feature/last-saved.spec.js similarity index 100% rename from enketo-express/test/client/feature/last-saved.spec.js rename to packages/enketo-express/test/client/feature/last-saved.spec.js diff --git a/enketo-express/test/client/feature/survey-encryption.spec.js b/packages/enketo-express/test/client/feature/survey-encryption.spec.js similarity index 100% rename from enketo-express/test/client/feature/survey-encryption.spec.js rename to packages/enketo-express/test/client/feature/survey-encryption.spec.js diff --git a/enketo-express/test/client/form-cache.spec.js b/packages/enketo-express/test/client/form-cache.spec.js similarity index 100% rename from enketo-express/test/client/form-cache.spec.js rename to packages/enketo-express/test/client/form-cache.spec.js diff --git a/enketo-express/test/client/plugin.spec.js b/packages/enketo-express/test/client/plugin.spec.js similarity index 100% rename from enketo-express/test/client/plugin.spec.js rename to packages/enketo-express/test/client/plugin.spec.js diff --git a/enketo-express/test/client/records-queue.spec.js b/packages/enketo-express/test/client/records-queue.spec.js similarity index 100% rename from enketo-express/test/client/records-queue.spec.js rename to packages/enketo-express/test/client/records-queue.spec.js diff --git a/enketo-express/test/client/store.spec.js b/packages/enketo-express/test/client/store.spec.js similarity index 100% rename from enketo-express/test/client/store.spec.js rename to packages/enketo-express/test/client/store.spec.js diff --git a/enketo-express/test/client/utils.spec.js b/packages/enketo-express/test/client/utils.spec.js similarity index 100% rename from enketo-express/test/client/utils.spec.js rename to packages/enketo-express/test/client/utils.spec.js diff --git a/enketo-express/test/server/.eslintrc.json b/packages/enketo-express/test/server/.eslintrc.json similarity index 100% rename from enketo-express/test/server/.eslintrc.json rename to packages/enketo-express/test/server/.eslintrc.json diff --git a/enketo-express/test/server/account-model.spec.js b/packages/enketo-express/test/server/account-model.spec.js similarity index 100% rename from enketo-express/test/server/account-model.spec.js rename to packages/enketo-express/test/server/account-model.spec.js diff --git a/enketo-express/test/server/api-controller.spec.js b/packages/enketo-express/test/server/api-controller.spec.js similarity index 100% rename from enketo-express/test/server/api-controller.spec.js rename to packages/enketo-express/test/server/api-controller.spec.js diff --git a/enketo-express/test/server/cache-model.spec.js b/packages/enketo-express/test/server/cache-model.spec.js similarity index 100% rename from enketo-express/test/server/cache-model.spec.js rename to packages/enketo-express/test/server/cache-model.spec.js diff --git a/enketo-express/test/server/communicator-lib.spec.js b/packages/enketo-express/test/server/communicator-lib.spec.js similarity index 100% rename from enketo-express/test/server/communicator-lib.spec.js rename to packages/enketo-express/test/server/communicator-lib.spec.js diff --git a/enketo-express/test/server/config-model.spec.js b/packages/enketo-express/test/server/config-model.spec.js similarity index 100% rename from enketo-express/test/server/config-model.spec.js rename to packages/enketo-express/test/server/config-model.spec.js diff --git a/enketo-express/test/server/instance-model.spec.js b/packages/enketo-express/test/server/instance-model.spec.js similarity index 100% rename from enketo-express/test/server/instance-model.spec.js rename to packages/enketo-express/test/server/instance-model.spec.js diff --git a/enketo-express/test/server/media-controller.spec.js b/packages/enketo-express/test/server/media-controller.spec.js similarity index 100% rename from enketo-express/test/server/media-controller.spec.js rename to packages/enketo-express/test/server/media-controller.spec.js diff --git a/enketo-express/test/server/require-uncache-helper.js b/packages/enketo-express/test/server/require-uncache-helper.js similarity index 100% rename from enketo-express/test/server/require-uncache-helper.js rename to packages/enketo-express/test/server/require-uncache-helper.js diff --git a/enketo-express/test/server/router-utils.spec.js b/packages/enketo-express/test/server/router-utils.spec.js similarity index 100% rename from enketo-express/test/server/router-utils.spec.js rename to packages/enketo-express/test/server/router-utils.spec.js diff --git a/enketo-express/test/server/submission-controller.spec.js b/packages/enketo-express/test/server/submission-controller.spec.js similarity index 100% rename from enketo-express/test/server/submission-controller.spec.js rename to packages/enketo-express/test/server/submission-controller.spec.js diff --git a/enketo-express/test/server/submission-model.spec.js b/packages/enketo-express/test/server/submission-model.spec.js similarity index 100% rename from enketo-express/test/server/submission-model.spec.js rename to packages/enketo-express/test/server/submission-model.spec.js diff --git a/enketo-express/test/server/survey-controller.spec.js b/packages/enketo-express/test/server/survey-controller.spec.js similarity index 100% rename from enketo-express/test/server/survey-controller.spec.js rename to packages/enketo-express/test/server/survey-controller.spec.js diff --git a/enketo-express/test/server/survey-model.spec.js b/packages/enketo-express/test/server/survey-model.spec.js similarity index 100% rename from enketo-express/test/server/survey-model.spec.js rename to packages/enketo-express/test/server/survey-model.spec.js diff --git a/enketo-express/test/server/utils.spec.js b/packages/enketo-express/test/server/utils.spec.js similarity index 100% rename from enketo-express/test/server/utils.spec.js rename to packages/enketo-express/test/server/utils.spec.js diff --git a/enketo-express/tools/duplicates.js b/packages/enketo-express/tools/duplicates.js similarity index 100% rename from enketo-express/tools/duplicates.js rename to packages/enketo-express/tools/duplicates.js diff --git a/enketo-express/tools/update-readme-with-shield-badge.js b/packages/enketo-express/tools/update-readme-with-shield-badge.js similarity index 100% rename from enketo-express/tools/update-readme-with-shield-badge.js rename to packages/enketo-express/tools/update-readme-with-shield-badge.js diff --git a/enketo-express/tsconfig.json b/packages/enketo-express/tsconfig.json similarity index 100% rename from enketo-express/tsconfig.json rename to packages/enketo-express/tsconfig.json diff --git a/enketo-express/tutorials/00-getting-started.md b/packages/enketo-express/tutorials/00-getting-started.md similarity index 100% rename from enketo-express/tutorials/00-getting-started.md rename to packages/enketo-express/tutorials/00-getting-started.md diff --git a/enketo-express/tutorials/02-heroku.md b/packages/enketo-express/tutorials/02-heroku.md similarity index 100% rename from enketo-express/tutorials/02-heroku.md rename to packages/enketo-express/tutorials/02-heroku.md diff --git a/enketo-express/tutorials/10-configure.md b/packages/enketo-express/tutorials/10-configure.md similarity index 100% rename from enketo-express/tutorials/10-configure.md rename to packages/enketo-express/tutorials/10-configure.md diff --git a/enketo-express/tutorials/12-ordinals.md b/packages/enketo-express/tutorials/12-ordinals.md similarity index 100% rename from enketo-express/tutorials/12-ordinals.md rename to packages/enketo-express/tutorials/12-ordinals.md diff --git a/enketo-express/tutorials/20-update.md b/packages/enketo-express/tutorials/20-update.md similarity index 100% rename from enketo-express/tutorials/20-update.md rename to packages/enketo-express/tutorials/20-update.md diff --git a/enketo-express/tutorials/30-develop.md b/packages/enketo-express/tutorials/30-develop.md similarity index 100% rename from enketo-express/tutorials/30-develop.md rename to packages/enketo-express/tutorials/30-develop.md diff --git a/enketo-express/tutorials/32-api.md b/packages/enketo-express/tutorials/32-api.md similarity index 100% rename from enketo-express/tutorials/32-api.md rename to packages/enketo-express/tutorials/32-api.md diff --git a/enketo-express/tutorials/34-custom-widgets.md b/packages/enketo-express/tutorials/34-custom-widgets.md similarity index 100% rename from enketo-express/tutorials/34-custom-widgets.md rename to packages/enketo-express/tutorials/34-custom-widgets.md diff --git a/enketo-express/tutorials/36-theming.md b/packages/enketo-express/tutorials/36-theming.md similarity index 100% rename from enketo-express/tutorials/36-theming.md rename to packages/enketo-express/tutorials/36-theming.md diff --git a/enketo-express/tutorials/38-iframe-postmessage.md b/packages/enketo-express/tutorials/38-iframe-postmessage.md similarity index 100% rename from enketo-express/tutorials/38-iframe-postmessage.md rename to packages/enketo-express/tutorials/38-iframe-postmessage.md diff --git a/enketo-express/tutorials/40-translate.md b/packages/enketo-express/tutorials/40-translate.md similarity index 100% rename from enketo-express/tutorials/40-translate.md rename to packages/enketo-express/tutorials/40-translate.md diff --git a/enketo-express/tutorials/60-authentication-and-security.md b/packages/enketo-express/tutorials/60-authentication-and-security.md similarity index 100% rename from enketo-express/tutorials/60-authentication-and-security.md rename to packages/enketo-express/tutorials/60-authentication-and-security.md diff --git a/enketo-express/tutorials/70-browser-support.md b/packages/enketo-express/tutorials/70-browser-support.md similarity index 100% rename from enketo-express/tutorials/70-browser-support.md rename to packages/enketo-express/tutorials/70-browser-support.md diff --git a/enketo-express/tutorials/80-comments.md b/packages/enketo-express/tutorials/80-comments.md similarity index 100% rename from enketo-express/tutorials/80-comments.md rename to packages/enketo-express/tutorials/80-comments.md diff --git a/enketo-express/tutorials/90-duplicates.md b/packages/enketo-express/tutorials/90-duplicates.md similarity index 100% rename from enketo-express/tutorials/90-duplicates.md rename to packages/enketo-express/tutorials/90-duplicates.md diff --git a/enketo-express/tutorials/index.json b/packages/enketo-express/tutorials/index.json similarity index 100% rename from enketo-express/tutorials/index.json rename to packages/enketo-express/tutorials/index.json diff --git a/form-manager/.eslintrc.js b/packages/form-manager/.eslintrc.js similarity index 100% rename from form-manager/.eslintrc.js rename to packages/form-manager/.eslintrc.js diff --git a/form-manager/.gitignore b/packages/form-manager/.gitignore similarity index 100% rename from form-manager/.gitignore rename to packages/form-manager/.gitignore diff --git a/form-manager/.prettierrc b/packages/form-manager/.prettierrc similarity index 100% rename from form-manager/.prettierrc rename to packages/form-manager/.prettierrc diff --git a/form-manager/README.md b/packages/form-manager/README.md similarity index 100% rename from form-manager/README.md rename to packages/form-manager/README.md diff --git a/form-manager/nest-cli.json b/packages/form-manager/nest-cli.json similarity index 100% rename from form-manager/nest-cli.json rename to packages/form-manager/nest-cli.json diff --git a/form-manager/package-lock.json b/packages/form-manager/package-lock.json similarity index 100% rename from form-manager/package-lock.json rename to packages/form-manager/package-lock.json diff --git a/form-manager/package.json b/packages/form-manager/package.json similarity index 100% rename from form-manager/package.json rename to packages/form-manager/package.json diff --git a/form-manager/src/app.controller.spec.ts b/packages/form-manager/src/app.controller.spec.ts similarity index 100% rename from form-manager/src/app.controller.spec.ts rename to packages/form-manager/src/app.controller.spec.ts diff --git a/form-manager/src/app.controller.ts b/packages/form-manager/src/app.controller.ts similarity index 100% rename from form-manager/src/app.controller.ts rename to packages/form-manager/src/app.controller.ts diff --git a/form-manager/src/app.module.ts b/packages/form-manager/src/app.module.ts similarity index 100% rename from form-manager/src/app.module.ts rename to packages/form-manager/src/app.module.ts diff --git a/form-manager/src/app.service.ts b/packages/form-manager/src/app.service.ts similarity index 100% rename from form-manager/src/app.service.ts rename to packages/form-manager/src/app.service.ts diff --git a/form-manager/src/forms/form1.xml b/packages/form-manager/src/forms/form1.xml similarity index 100% rename from form-manager/src/forms/form1.xml rename to packages/form-manager/src/forms/form1.xml diff --git a/form-manager/src/forms/form2.xml b/packages/form-manager/src/forms/form2.xml similarity index 100% rename from form-manager/src/forms/form2.xml rename to packages/form-manager/src/forms/form2.xml diff --git a/form-manager/src/main.ts b/packages/form-manager/src/main.ts similarity index 100% rename from form-manager/src/main.ts rename to packages/form-manager/src/main.ts diff --git a/form-manager/test/app.e2e-spec.ts b/packages/form-manager/test/app.e2e-spec.ts similarity index 100% rename from form-manager/test/app.e2e-spec.ts rename to packages/form-manager/test/app.e2e-spec.ts diff --git a/form-manager/test/jest-e2e.json b/packages/form-manager/test/jest-e2e.json similarity index 100% rename from form-manager/test/jest-e2e.json rename to packages/form-manager/test/jest-e2e.json diff --git a/form-manager/tsconfig.build.json b/packages/form-manager/tsconfig.build.json similarity index 100% rename from form-manager/tsconfig.build.json rename to packages/form-manager/tsconfig.build.json diff --git a/form-manager/tsconfig.json b/packages/form-manager/tsconfig.json similarity index 100% rename from form-manager/tsconfig.json rename to packages/form-manager/tsconfig.json diff --git a/turbo.json b/turbo.json new file mode 100644 index 00000000..329119e6 --- /dev/null +++ b/turbo.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://turborepo.org/schema.json", + "pipeline": { + "build": { + "outputs": [ + "dist/**", + "build/**" + ] + }, + "build-docs": { + "outputs": [ + "dist/**", + "build/**" + ] + } + } +}