ezekiel-cli 5.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +24 -0
- package/.eslintrc +40 -0
- package/.prettierignore +1 -0
- package/README.md +139 -0
- package/bin/insites-cli-archive.js +35 -0
- package/bin/insites-cli-audit.js +5 -0
- package/bin/insites-cli-data-clean.js +69 -0
- package/bin/insites-cli-data-export.js +111 -0
- package/bin/insites-cli-data-import.js +105 -0
- package/bin/insites-cli-data.js +15 -0
- package/bin/insites-cli-deploy.js +43 -0
- package/bin/insites-cli-env-add.js +107 -0
- package/bin/insites-cli-env-list.js +22 -0
- package/bin/insites-cli-env.js +12 -0
- package/bin/insites-cli-gui-serve.js +47 -0
- package/bin/insites-cli-gui.js +8 -0
- package/bin/insites-cli-init.js +44 -0
- package/bin/insites-cli-logs.js +124 -0
- package/bin/insites-cli-logsv2-alerts-add.js +34 -0
- package/bin/insites-cli-logsv2-alerts-list.js +24 -0
- package/bin/insites-cli-logsv2-alerts-trigger.js +25 -0
- package/bin/insites-cli-logsv2-alerts.js +11 -0
- package/bin/insites-cli-logsv2-reports.js +36 -0
- package/bin/insites-cli-logsv2-search.js +40 -0
- package/bin/insites-cli-logsv2-searchAround.js +29 -0
- package/bin/insites-cli-logsv2.js +11 -0
- package/bin/insites-cli-modules-init.js +54 -0
- package/bin/insites-cli-modules-list.js +28 -0
- package/bin/insites-cli-modules-pull.js +43 -0
- package/bin/insites-cli-modules-remove.js +26 -0
- package/bin/insites-cli-modules-version.js +60 -0
- package/bin/insites-cli-modules.js +13 -0
- package/bin/insites-cli-pull.js +42 -0
- package/bin/insites-cli-sync.js +30 -0
- package/bin/insites-cli.js +53 -0
- package/gui/graphql/babel.config.js +21 -0
- package/gui/graphql/package-lock.json +4772 -0
- package/gui/graphql/package.json +28 -0
- package/gui/graphql/public/105.js +7 -0
- package/gui/graphql/public/178.js +1 -0
- package/gui/graphql/public/198.js +1 -0
- package/gui/graphql/public/441.js +4 -0
- package/gui/graphql/public/471.js +1 -0
- package/gui/graphql/public/480.js +24 -0
- package/gui/graphql/public/481.js +1 -0
- package/gui/graphql/public/571.js +12 -0
- package/gui/graphql/public/573.js +8 -0
- package/gui/graphql/public/574.js +1 -0
- package/gui/graphql/public/584.js +38 -0
- package/gui/graphql/public/588.js +1 -0
- package/gui/graphql/public/662.js +8 -0
- package/gui/graphql/public/724.js +1 -0
- package/gui/graphql/public/739.js +1 -0
- package/gui/graphql/public/744.js +1 -0
- package/gui/graphql/public/768.js +1 -0
- package/gui/graphql/public/79.js +1 -0
- package/gui/graphql/public/845.js +2 -0
- package/gui/graphql/public/863.js +1 -0
- package/gui/graphql/public/896.js +1 -0
- package/gui/graphql/public/92.js +2 -0
- package/gui/graphql/public/98.js +1 -0
- package/gui/graphql/public/980.js +1 -0
- package/gui/graphql/public/995.js +1 -0
- package/gui/graphql/public/index.html +12 -0
- package/gui/graphql/public/main.css +27 -0
- package/gui/graphql/public/main.js +2230 -0
- package/gui/graphql/public/main.js.LICENSE.txt +39 -0
- package/gui/graphql/src/index.jsx +139 -0
- package/gui/graphql/webpack.config.js +52 -0
- package/gui/liquid/public/index.html +82 -0
- package/gui/v1/build/_app/immutable/assets/0.251ef76d.css +1 -0
- package/gui/v1/build/_app/immutable/assets/10.ee72ee6d.css +1 -0
- package/gui/v1/build/_app/immutable/assets/12.f6879dba.css +1 -0
- package/gui/v1/build/_app/immutable/assets/13.bf080bcc.css +1 -0
- package/gui/v1/build/_app/immutable/assets/15.0e0670ce.css +1 -0
- package/gui/v1/build/_app/immutable/assets/2.4a46c382.css +1 -0
- package/gui/v1/build/_app/immutable/assets/4.73dde45b.css +1 -0
- package/gui/v1/build/_app/immutable/assets/6.6bcda092.css +1 -0
- package/gui/v1/build/_app/immutable/assets/7.c0038863.css +1 -0
- package/gui/v1/build/_app/immutable/assets/9.6957ad32.css +1 -0
- package/gui/v1/build/_app/immutable/assets/Aside.66c2d12f.css +1 -0
- package/gui/v1/build/_app/immutable/assets/JSONTree.507a2dde.css +1 -0
- package/gui/v1/build/_app/immutable/assets/JSONTree.79010849.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_layout.4a46c382.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_layout.6bcda092.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_layout.73dde45b.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_layout.85c17bd0.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.0e0670ce.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.425c1d28.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.6957ad32.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.bf080bcc.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.c0038863.css +1 -0
- package/gui/v1/build/_app/immutable/assets/_page.ee72ee6d.css +1 -0
- package/gui/v1/build/_app/immutable/chunks/Aside.c28a1ec5.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/Icon.1db6668c.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/JSONTree.641da795.js +2 -0
- package/gui/v1/build/_app/immutable/chunks/backgroundJob.0f2693c5.js +53 -0
- package/gui/v1/build/_app/immutable/chunks/graphql.6101590b.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/index.50c00146.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/index.5744cd58.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/index.88325b8f.js +4 -0
- package/gui/v1/build/_app/immutable/chunks/index.c35021d1.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/singletons.b6d4da89.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/state.adc829f2.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/stores.71f75302.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/table.71e66f99.js +16 -0
- package/gui/v1/build/_app/immutable/chunks/tryParseJSON.f125f883.js +1 -0
- package/gui/v1/build/_app/immutable/chunks/user.039256f6.js +31 -0
- package/gui/v1/build/_app/immutable/entry/app.44548b11.js +1 -0
- package/gui/v1/build/_app/immutable/entry/start.4e385061.js +3 -0
- package/gui/v1/build/_app/immutable/nodes/0.d27a86c9.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/1.532e414a.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/10.962850d6.js +26 -0
- package/gui/v1/build/_app/immutable/nodes/11.d0e2eb78.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/12.6449d2bf.js +74 -0
- package/gui/v1/build/_app/immutable/nodes/13.d3883433.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/14.b1e09778.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/15.af2c20ae.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/2.4d90d0b8.js +9 -0
- package/gui/v1/build/_app/immutable/nodes/3.06f6ef98.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/4.32a26935.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/5.06f6ef98.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/6.57fec5aa.js +7 -0
- package/gui/v1/build/_app/immutable/nodes/7.ae78c23b.js +13 -0
- package/gui/v1/build/_app/immutable/nodes/8.f57c5fbf.js +1 -0
- package/gui/v1/build/_app/immutable/nodes/9.374909fd.js +1 -0
- package/gui/v1/build/_app/version.json +1 -0
- package/gui/v1/build/favicon.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-114x114.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-120x120.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-144x144.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-152x152.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-57x57.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-60x60.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-72x72.png +0 -0
- package/gui/v1/build/icon/apple-touch-icon-76x76.png +0 -0
- package/gui/v1/build/icon/code.txt +20 -0
- package/gui/v1/build/icon/favicon-128.png +0 -0
- package/gui/v1/build/icon/favicon-16x16.png +0 -0
- package/gui/v1/build/icon/favicon-196x196.png +0 -0
- package/gui/v1/build/icon/favicon-32x32.png +0 -0
- package/gui/v1/build/icon/favicon-96x96.png +0 -0
- package/gui/v1/build/icon/favicon.ico +0 -0
- package/gui/v1/build/icon/mstile-144x144.png +0 -0
- package/gui/v1/build/icon/mstile-150x150.png +0 -0
- package/gui/v1/build/icon/mstile-310x150.png +0 -0
- package/gui/v1/build/icon/mstile-310x310.png +0 -0
- package/gui/v1/build/icon/mstile-70x70.png +0 -0
- package/gui/v1/build/index.html +35 -0
- package/gui/v1/build/insites-logo-old.png +0 -0
- package/gui/v1/build/insites-logo.png +0 -0
- package/gui/v1/build/prism.js +8 -0
- package/gui/v1/package-lock.json +1616 -0
- package/gui/v1/package.json +27 -0
- package/gui/v1/playwright.config.js +10 -0
- package/gui/v1/pnpm-lock.yaml +992 -0
- package/gui/v1/src/app.html +12 -0
- package/gui/v1/src/lib/api/backgroundJob.js +124 -0
- package/gui/v1/src/lib/api/constant.js +68 -0
- package/gui/v1/src/lib/api/graphql.js +57 -0
- package/gui/v1/src/lib/api/logs.js +45 -0
- package/gui/v1/src/lib/api/record.js +286 -0
- package/gui/v1/src/lib/api/table.js +45 -0
- package/gui/v1/src/lib/api/user.js +78 -0
- package/gui/v1/src/lib/backgroundJob/Delete.svelte +61 -0
- package/gui/v1/src/lib/backgroundJob/Retry.svelte +45 -0
- package/gui/v1/src/lib/database/Create.svelte +324 -0
- package/gui/v1/src/lib/database/Delete.svelte +61 -0
- package/gui/v1/src/lib/database/Filters.svelte +155 -0
- package/gui/v1/src/lib/database/Sort.svelte +110 -0
- package/gui/v1/src/lib/database/Table.svelte +261 -0
- package/gui/v1/src/lib/database/Tables.svelte +276 -0
- package/gui/v1/src/lib/parseValue.js +51 -0
- package/gui/v1/src/lib/relativeTime.js +33 -0
- package/gui/v1/src/lib/state.js +190 -0
- package/gui/v1/src/lib/tryParseJSON.js +32 -0
- package/gui/v1/src/lib/ui/Aside.svelte +176 -0
- package/gui/v1/src/lib/ui/Code.svelte +50 -0
- package/gui/v1/src/lib/ui/ConnectionIndicator.svelte +133 -0
- package/gui/v1/src/lib/ui/Header.svelte +252 -0
- package/gui/v1/src/lib/ui/Icon.svelte +55 -0
- package/gui/v1/src/lib/ui/JSONTree.svelte +77 -0
- package/gui/v1/src/lib/ui/Notifications.svelte +111 -0
- package/gui/v1/src/lib/ui/forms/Toggle.svelte +114 -0
- package/gui/v1/src/routes/+layout.svelte +25 -0
- package/gui/v1/src/routes/+page.svelte +511 -0
- package/gui/v1/src/routes/backgroundJobs/+layout.svelte +366 -0
- package/gui/v1/src/routes/backgroundJobs/+page.svelte +0 -0
- package/gui/v1/src/routes/backgroundJobs/[type]/[id]/+page.svelte +157 -0
- package/gui/v1/src/routes/constants/+layout.svelte +1 -0
- package/gui/v1/src/routes/constants/+page.svelte +382 -0
- package/gui/v1/src/routes/database/+layout.svelte +67 -0
- package/gui/v1/src/routes/database/+page.svelte +3 -0
- package/gui/v1/src/routes/database/table/[id]/+page.svelte +219 -0
- package/gui/v1/src/routes/logs/+layout.svelte +1 -0
- package/gui/v1/src/routes/logs/+page.svelte +512 -0
- package/gui/v1/src/routes/users/+layout.svelte +252 -0
- package/gui/v1/src/routes/users/+page.svelte +4 -0
- package/gui/v1/src/routes/users/[id]/+page.svelte +127 -0
- package/gui/v1/src/style/button.css +141 -0
- package/gui/v1/src/style/code.css +4 -0
- package/gui/v1/src/style/config.css +186 -0
- package/gui/v1/src/style/forms.css +55 -0
- package/gui/v1/src/style/general.css +53 -0
- package/gui/v1/src/style/reset.css +75 -0
- package/gui/v1/static/favicon.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-114x114.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-120x120.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-144x144.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-152x152.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-57x57.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-60x60.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-72x72.png +0 -0
- package/gui/v1/static/icon/apple-touch-icon-76x76.png +0 -0
- package/gui/v1/static/icon/code.txt +20 -0
- package/gui/v1/static/icon/favicon-128.png +0 -0
- package/gui/v1/static/icon/favicon-16x16.png +0 -0
- package/gui/v1/static/icon/favicon-196x196.png +0 -0
- package/gui/v1/static/icon/favicon-32x32.png +0 -0
- package/gui/v1/static/icon/favicon-96x96.png +0 -0
- package/gui/v1/static/icon/favicon.ico +0 -0
- package/gui/v1/static/icon/mstile-144x144.png +0 -0
- package/gui/v1/static/icon/mstile-150x150.png +0 -0
- package/gui/v1/static/icon/mstile-310x150.png +0 -0
- package/gui/v1/static/icon/mstile-310x310.png +0 -0
- package/gui/v1/static/icon/mstile-70x70.png +0 -0
- package/gui/v1/static/insites-logo-old.png +0 -0
- package/gui/v1/static/insites-logo.png +0 -0
- package/gui/v1/static/prism.js +8 -0
- package/gui/v1/svelte.config.js +12 -0
- package/gui/v1/vite.config.js +9 -0
- package/gui/v2/.env.local.sample +1 -0
- package/gui/v2/.eslintrc.json +3 -0
- package/gui/v2/README.md +36 -0
- package/gui/v2/jsconfig.json +7 -0
- package/gui/v2/next.config.mjs +8 -0
- package/gui/v2/out/404/index.html +1 -0
- package/gui/v2/out/404.html +1 -0
- package/gui/v2/out/_next/static/chunks/1255.653490595d3fc3e0.js +1 -0
- package/gui/v2/out/_next/static/chunks/156-d7f9f402651cf1ce.js +1 -0
- package/gui/v2/out/_next/static/chunks/1607-f540467bd5a5afbb.js +1 -0
- package/gui/v2/out/_next/static/chunks/1846.1d14172e53de7bd5.js +1 -0
- package/gui/v2/out/_next/static/chunks/2380.950327f4432936af.js +1 -0
- package/gui/v2/out/_next/static/chunks/2572.bec81f6c42bcb825.js +1 -0
- package/gui/v2/out/_next/static/chunks/2650.fe9586a828cdca9d.js +1 -0
- package/gui/v2/out/_next/static/chunks/3331.562d592a07589250.js +1 -0
- package/gui/v2/out/_next/static/chunks/3510.61b58fad9f502d34.js +1 -0
- package/gui/v2/out/_next/static/chunks/363642f4-2accd15316551dfa.js +1 -0
- package/gui/v2/out/_next/static/chunks/4704.c49f871da8f25277.js +1 -0
- package/gui/v2/out/_next/static/chunks/49448ee7.02b7afe6f73c8f9d.js +1 -0
- package/gui/v2/out/_next/static/chunks/4d1bfaba-4c00fd5561f9a075.js +1 -0
- package/gui/v2/out/_next/static/chunks/5103.b86a80704c50b2cb.js +1 -0
- package/gui/v2/out/_next/static/chunks/5250-f85a6556cdac145c.js +1 -0
- package/gui/v2/out/_next/static/chunks/5253.6fc3f7a625a83de9.js +1 -0
- package/gui/v2/out/_next/static/chunks/6163.50329d0319b2e55b.js +1 -0
- package/gui/v2/out/_next/static/chunks/6262.57b323874390cc1b.js +1 -0
- package/gui/v2/out/_next/static/chunks/6442.5e49a9feebedaf1a.js +1 -0
- package/gui/v2/out/_next/static/chunks/6711.076ab1f536726d8d.js +1 -0
- package/gui/v2/out/_next/static/chunks/6729.9cc7e67fe8be26d8.js +1 -0
- package/gui/v2/out/_next/static/chunks/6744.73e5042f769356c2.js +1 -0
- package/gui/v2/out/_next/static/chunks/7058.e63b764d613d6d14.js +1 -0
- package/gui/v2/out/_next/static/chunks/714.039f29b090afd075.js +1 -0
- package/gui/v2/out/_next/static/chunks/720.b5dff7afd9961ccc.js +1 -0
- package/gui/v2/out/_next/static/chunks/7283.e2af380e1cb385c4.js +1 -0
- package/gui/v2/out/_next/static/chunks/7567.fb1e0ef7389df59d.js +1 -0
- package/gui/v2/out/_next/static/chunks/7604.12b8307c002ce3f4.js +1 -0
- package/gui/v2/out/_next/static/chunks/7612.f071dccc7f2b0711.js +1 -0
- package/gui/v2/out/_next/static/chunks/7737.6191e6708d094927.js +1 -0
- package/gui/v2/out/_next/static/chunks/7833.6ff3b0179c6aab2e.js +1 -0
- package/gui/v2/out/_next/static/chunks/7934.875b05fd89a8eeae.js +1 -0
- package/gui/v2/out/_next/static/chunks/7957.c1f316fb4f52b181.js +1 -0
- package/gui/v2/out/_next/static/chunks/7979.1ed8d3011a12e2f1.js +1 -0
- package/gui/v2/out/_next/static/chunks/8043.592171badd8f3ea1.js +57 -0
- package/gui/v2/out/_next/static/chunks/8047-327e12b999e88629.js +1 -0
- package/gui/v2/out/_next/static/chunks/8069-99e6658a6772ea80.js +1 -0
- package/gui/v2/out/_next/static/chunks/8414.c85352362d33de3e.js +1 -0
- package/gui/v2/out/_next/static/chunks/8700.4409d1a867db1bf3.js +1 -0
- package/gui/v2/out/_next/static/chunks/9121.b83f5b8780f6c093.js +1 -0
- package/gui/v2/out/_next/static/chunks/9336.17897c831ce187f3.js +1 -0
- package/gui/v2/out/_next/static/chunks/9479.f984522cec5ff059.js +1 -0
- package/gui/v2/out/_next/static/chunks/9557.471a0e1662abe246.js +1 -0
- package/gui/v2/out/_next/static/chunks/989.aa0766c8bb66a392.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/background-job/page-0521f8d6e8ec9b55.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/constants/page-f1397b414fe2e4c0.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/database/layout-c1e28d1ae358bc77.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/database/page-d2f667b24c673fbb.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/error-3cf235b6b99c469f.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/global-error-afc2c2c9b5e82f57.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/graphql/page-ae7c858f41b54801.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/layout-8194e46834cb4aba.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/liquid/page-02caf239e75f472f.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/loading-54414b5097331d64.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/logs/layout-5f78d72b1b805625.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/logs/page-ef7dd2b328d24734.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/not-found-33cae8ec5bdcd26f.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/page-73b1f8b1f7552d3f.js +1 -0
- package/gui/v2/out/_next/static/chunks/app/users/page-2195ac1594366ce4.js +1 -0
- package/gui/v2/out/_next/static/chunks/d9670eb5.68da5e9f84dd26cf.js +1 -0
- package/gui/v2/out/_next/static/chunks/fd9d1056-0e6b8922e4ebe23a.js +1 -0
- package/gui/v2/out/_next/static/chunks/framework-08aa667e5202eed8.js +33 -0
- package/gui/v2/out/_next/static/chunks/main-7b334683379129cf.js +1 -0
- package/gui/v2/out/_next/static/chunks/main-app-35b90d128e2e05cf.js +1 -0
- package/gui/v2/out/_next/static/chunks/pages/_app-57bdff7978360b1c.js +1 -0
- package/gui/v2/out/_next/static/chunks/pages/_error-29037c284dd0eec6.js +1 -0
- package/gui/v2/out/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
- package/gui/v2/out/_next/static/chunks/webpack-d07cc8d61c19af5d.js +1 -0
- package/gui/v2/out/_next/static/css/874c6e64ab8446a4.css +6 -0
- package/gui/v2/out/_next/static/css/88716ec5fc4aa1e3.css +15 -0
- package/gui/v2/out/_next/static/wmD1UwESxpzZj8pfiHFeB/_buildManifest.js +1 -0
- package/gui/v2/out/_next/static/wmD1UwESxpzZj8pfiHFeB/_ssgManifest.js +1 -0
- package/gui/v2/out/assets/icons/home-bg-job.png +0 -0
- package/gui/v2/out/assets/icons/home-constants.png +0 -0
- package/gui/v2/out/assets/icons/home-database.png +0 -0
- package/gui/v2/out/assets/icons/home-graphql.png +0 -0
- package/gui/v2/out/assets/icons/home-info-fill-light.png +0 -0
- package/gui/v2/out/assets/icons/home-info-light.png +0 -0
- package/gui/v2/out/assets/icons/home-liquid.png +0 -0
- package/gui/v2/out/assets/icons/home-logs.png +0 -0
- package/gui/v2/out/assets/icons/home-pin-fill-light.png +0 -0
- package/gui/v2/out/assets/icons/home-pin-light.png +0 -0
- package/gui/v2/out/assets/icons/home-support.png +0 -0
- package/gui/v2/out/assets/icons/home-users.png +0 -0
- package/gui/v2/out/assets/icons/menu-bg-job-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-bg-job-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-console-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-console-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-constants-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-constants-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-database-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-database-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-docs-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-docs-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-graphql-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-graphql-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-iia-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-iia-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-liquid-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-liquid-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-logs-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-logs-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-support-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-support-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-theme-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-theme-light.png +0 -0
- package/gui/v2/out/assets/icons/menu-users-dark.png +0 -0
- package/gui/v2/out/assets/icons/menu-users-light.png +0 -0
- package/gui/v2/out/assets/icons/search-icon-dark.svg +3 -0
- package/gui/v2/out/assets/ins-logo-dark.svg +35 -0
- package/gui/v2/out/assets/ins-logo-light.svg +35 -0
- package/gui/v2/out/background-job/index.html +1 -0
- package/gui/v2/out/background-job/index.txt +9 -0
- package/gui/v2/out/constants/index.html +1 -0
- package/gui/v2/out/constants/index.txt +11 -0
- package/gui/v2/out/database/index.html +1 -0
- package/gui/v2/out/database/index.txt +13 -0
- package/gui/v2/out/favicon.ico +0 -0
- package/gui/v2/out/favicon.png +0 -0
- package/gui/v2/out/graphql/index.html +1 -0
- package/gui/v2/out/graphql/index.txt +11 -0
- package/gui/v2/out/index.html +1 -0
- package/gui/v2/out/index.txt +11 -0
- package/gui/v2/out/liquid/index.html +1 -0
- package/gui/v2/out/liquid/index.txt +11 -0
- package/gui/v2/out/logs/index.html +1 -0
- package/gui/v2/out/logs/index.txt +13 -0
- package/gui/v2/out/next.svg +1 -0
- package/gui/v2/out/users/index.html +1 -0
- package/gui/v2/out/users/index.txt +11 -0
- package/gui/v2/out/vercel.svg +1 -0
- package/gui/v2/package-lock.json +9575 -0
- package/gui/v2/package.json +37 -0
- package/gui/v2/postcss.config.js +6 -0
- package/gui/v2/public/assets/icons/home-bg-job.png +0 -0
- package/gui/v2/public/assets/icons/home-constants.png +0 -0
- package/gui/v2/public/assets/icons/home-database.png +0 -0
- package/gui/v2/public/assets/icons/home-graphql.png +0 -0
- package/gui/v2/public/assets/icons/home-info-fill-light.png +0 -0
- package/gui/v2/public/assets/icons/home-info-light.png +0 -0
- package/gui/v2/public/assets/icons/home-liquid.png +0 -0
- package/gui/v2/public/assets/icons/home-logs.png +0 -0
- package/gui/v2/public/assets/icons/home-pin-fill-light.png +0 -0
- package/gui/v2/public/assets/icons/home-pin-light.png +0 -0
- package/gui/v2/public/assets/icons/home-support.png +0 -0
- package/gui/v2/public/assets/icons/home-users.png +0 -0
- package/gui/v2/public/assets/icons/menu-bg-job-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-bg-job-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-console-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-console-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-constants-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-constants-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-database-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-database-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-docs-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-docs-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-graphql-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-graphql-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-iia-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-iia-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-liquid-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-liquid-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-logs-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-logs-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-support-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-support-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-theme-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-theme-light.png +0 -0
- package/gui/v2/public/assets/icons/menu-users-dark.png +0 -0
- package/gui/v2/public/assets/icons/menu-users-light.png +0 -0
- package/gui/v2/public/assets/icons/search-icon-dark.svg +3 -0
- package/gui/v2/public/assets/ins-logo-dark.svg +35 -0
- package/gui/v2/public/assets/ins-logo-light.svg +35 -0
- package/gui/v2/public/favicon.png +0 -0
- package/gui/v2/public/next.svg +1 -0
- package/gui/v2/public/vercel.svg +1 -0
- package/gui/v2/src/app/background-job/page.js +35 -0
- package/gui/v2/src/app/constants/components/Field/Field.css +11 -0
- package/gui/v2/src/app/constants/components/Field/Field.js +52 -0
- package/gui/v2/src/app/constants/components/Filter.js +50 -0
- package/gui/v2/src/app/constants/components/Form/Form.css +3 -0
- package/gui/v2/src/app/constants/components/Form/Form.js +41 -0
- package/gui/v2/src/app/constants/page.js +40 -0
- package/gui/v2/src/app/database/components/Filters/FilterForm.js +70 -0
- package/gui/v2/src/app/database/components/Filters/FilterValue.js +68 -0
- package/gui/v2/src/app/database/components/Filters/Filters.js +72 -0
- package/gui/v2/src/app/database/components/Sidebar.js +46 -0
- package/gui/v2/src/app/database/components/Table.js +122 -0
- package/gui/v2/src/app/database/context.js +106 -0
- package/gui/v2/src/app/database/layout.js +10 -0
- package/gui/v2/src/app/database/page.js +31 -0
- package/gui/v2/src/app/error.js +25 -0
- package/gui/v2/src/app/favicon.ico +0 -0
- package/gui/v2/src/app/global-error.js +20 -0
- package/gui/v2/src/app/globals.css +30 -0
- package/gui/v2/src/app/graphql/graphql.js +71 -0
- package/gui/v2/src/app/graphql/page.js +11 -0
- package/gui/v2/src/app/layout.js +27 -0
- package/gui/v2/src/app/liquid/page.js +68 -0
- package/gui/v2/src/app/loading.js +7 -0
- package/gui/v2/src/app/logs/components/JsonTree.js +31 -0
- package/gui/v2/src/app/logs/components/LogMetadata/LogMetadata.js +61 -0
- package/gui/v2/src/app/logs/components/LogRow.js +62 -0
- package/gui/v2/src/app/logs/components/PinnedPanel/PinnedPanel.js +46 -0
- package/gui/v2/src/app/logs/components/Toolbar/ClearButton.js +10 -0
- package/gui/v2/src/app/logs/components/Toolbar/Filter.js +13 -0
- package/gui/v2/src/app/logs/components/Toolbar/MetaDataCheckbox.js +11 -0
- package/gui/v2/src/app/logs/components/Toolbar/ShowPinnedButton.js +8 -0
- package/gui/v2/src/app/logs/components/Toolbar/Toolbar.js +45 -0
- package/gui/v2/src/app/logs/context.js +66 -0
- package/gui/v2/src/app/logs/layout.js +10 -0
- package/gui/v2/src/app/logs/page.js +73 -0
- package/gui/v2/src/app/not-found.js +11 -0
- package/gui/v2/src/app/page.js +103 -0
- package/gui/v2/src/app/providers.js +18 -0
- package/gui/v2/src/app/users/components/UserDetails.js +38 -0
- package/gui/v2/src/app/users/page.js +121 -0
- package/gui/v2/src/components/CodeEditor/CodeEditor.css +12 -0
- package/gui/v2/src/components/CodeEditor/CodeEditor.js +76 -0
- package/gui/v2/src/components/layout/Header/Header.css +6 -0
- package/gui/v2/src/components/layout/Header/Header.js +139 -0
- package/gui/v2/src/constants/filters.js +32 -0
- package/gui/v2/src/constants/records.js +17 -0
- package/gui/v2/src/context/config.js +27 -0
- package/gui/v2/src/context/filters.js +22 -0
- package/gui/v2/src/context/menu.js +14 -0
- package/gui/v2/src/context/theme.js +29 -0
- package/gui/v2/src/hooks/config.js +6 -0
- package/gui/v2/src/hooks/constants.js +99 -0
- package/gui/v2/src/hooks/database.js +44 -0
- package/gui/v2/src/hooks/filters.js +30 -0
- package/gui/v2/src/hooks/menu.js +19 -0
- package/gui/v2/src/hooks/query.js +10 -0
- package/gui/v2/src/hooks/queryParams.js +20 -0
- package/gui/v2/src/hooks/recordQuery.js +109 -0
- package/gui/v2/src/hooks/theme.js +6 -0
- package/gui/v2/src/hooks/users.js +63 -0
- package/gui/v2/src/reducers/filter.js +28 -0
- package/gui/v2/src/reducers/menu.js +125 -0
- package/gui/v2/src/reducers/query.js +143 -0
- package/gui/v2/src/services/ConfigService.js +7 -0
- package/gui/v2/src/services/CoreService.js +68 -0
- package/gui/v2/src/services/GraphiQLService.js +14 -0
- package/gui/v2/src/services/LiquidService.js +7 -0
- package/gui/v2/src/services/LogService.js +7 -0
- package/gui/v2/src/services/RecordService.js +27 -0
- package/gui/v2/src/styles/app/database.css +10 -0
- package/gui/v2/src/styles/app/graphql.css +100 -0
- package/gui/v2/src/styles/app/liquid.css +4 -0
- package/gui/v2/src/styles/app/users.css +3 -0
- package/gui/v2/src/styles/general.css +31 -0
- package/gui/v2/src/styles/icons.css +7 -0
- package/gui/v2/src/styles/utils.css +103 -0
- package/gui/v2/src/styles/variables.css +94 -0
- package/gui/v2/tailwind.config.js +18 -0
- package/gui/v3/.cta.json +13 -0
- package/gui/v3/.cursorrules +7 -0
- package/gui/v3/.vscode/settings.json +18 -0
- package/gui/v3/README.md +300 -0
- package/gui/v3/components.json +21 -0
- package/gui/v3/index.html +17 -0
- package/gui/v3/out/assets/asn1-EdZsLKOL.js +1 -0
- package/gui/v3/out/assets/babel-C9dsZwsK.js +15 -0
- package/gui/v3/out/assets/clojure-BMjYHr_A.js +1 -0
- package/gui/v3/out/assets/codicon-DCmgc-ay.ttf +0 -0
- package/gui/v3/out/assets/constants-BTP7rcyh.js +1 -0
- package/gui/v3/out/assets/createLucideIcon-C36JZ1s3.js +21 -0
- package/gui/v3/out/assets/css-BnMrqG3P.js +1 -0
- package/gui/v3/out/assets/database-DV7gHS2m.js +106 -0
- package/gui/v3/out/assets/estree-DZUM3lmb.js +36 -0
- package/gui/v3/out/assets/format-Bs4upCOt.js +1 -0
- package/gui/v3/out/assets/graphql-7Dzro_xV.js +29 -0
- package/gui/v3/out/assets/graphql-Cg7bfA9N.js +6 -0
- package/gui/v3/out/assets/graphql-D05RS2Ys.js +29 -0
- package/gui/v3/out/assets/graphql-DeSRErpC.css +6 -0
- package/gui/v3/out/assets/graphql-Kf_-WQAL.js +335 -0
- package/gui/v3/out/assets/graphqlMode-BiZPK6IB.js +2 -0
- package/gui/v3/out/assets/icons/home-bg-job.png +0 -0
- package/gui/v3/out/assets/icons/home-constants.png +0 -0
- package/gui/v3/out/assets/icons/home-database.png +0 -0
- package/gui/v3/out/assets/icons/home-graphql.png +0 -0
- package/gui/v3/out/assets/icons/home-info-fill-light.png +0 -0
- package/gui/v3/out/assets/icons/home-info-light.png +0 -0
- package/gui/v3/out/assets/icons/home-liquid.png +0 -0
- package/gui/v3/out/assets/icons/home-logs.png +0 -0
- package/gui/v3/out/assets/icons/home-pin-fill-light.png +0 -0
- package/gui/v3/out/assets/icons/home-pin-light.png +0 -0
- package/gui/v3/out/assets/icons/home-support.png +0 -0
- package/gui/v3/out/assets/icons/home-users.png +0 -0
- package/gui/v3/out/assets/icons/menu-bg-job-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-bg-job-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-console-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-console-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-constants-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-constants-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-database-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-database-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-docs-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-docs-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-graphql-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-graphql-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-iia-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-iia-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-liquid-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-liquid-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-logs-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-logs-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-support-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-support-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-theme-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-theme-light.png +0 -0
- package/gui/v3/out/assets/icons/menu-users-dark.png +0 -0
- package/gui/v3/out/assets/icons/menu-users-light.png +0 -0
- package/gui/v3/out/assets/icons/search-icon-dark.svg +3 -0
- package/gui/v3/out/assets/index-AQmQqDwZ.js +68 -0
- package/gui/v3/out/assets/index-BkuncLX2.js +1 -0
- package/gui/v3/out/assets/index-Cf5jXmk6.css +1 -0
- package/gui/v3/out/assets/index-CizP5xBC.js +7 -0
- package/gui/v3/out/assets/index-DO4-OviR.js +1 -0
- package/gui/v3/out/assets/index-DuTWoEAJ.js +1 -0
- package/gui/v3/out/assets/index-Fzn1QYI7.js +41 -0
- package/gui/v3/out/assets/ins-logo-dark.svg +35 -0
- package/gui/v3/out/assets/ins-logo-light.svg +35 -0
- package/gui/v3/out/assets/javascript-qCveANmP.js +1 -0
- package/gui/v3/out/assets/jsonMode-D3_vpDO9.js +15 -0
- package/gui/v3/out/assets/liquid-eqk0BGFR.js +56 -0
- package/gui/v3/out/assets/lite-BCVbb_oz.js +2 -0
- package/gui/v3/out/assets/logs-DI6Go5dW.js +16 -0
- package/gui/v3/out/assets/mllike-CXdrOF99.js +1 -0
- package/gui/v3/out/assets/monaco-editor-C4cuflwX.js +722 -0
- package/gui/v3/out/assets/monaco-editor-D6kYW_CN.css +1 -0
- package/gui/v3/out/assets/mouseTarget-B_KnTiWf.js +9 -0
- package/gui/v3/out/assets/objectWithoutPropertiesLoose-Ls7qkcH1.js +1 -0
- package/gui/v3/out/assets/pug-DukmZTjD.js +1 -0
- package/gui/v3/out/assets/python-BuPzkPfP.js +1 -0
- package/gui/v3/out/assets/rpm-CTu-6PCP.js +1 -0
- package/gui/v3/out/assets/sql-D0XecflT.js +1 -0
- package/gui/v3/out/assets/standalone-BS_cqyLa.js +39 -0
- package/gui/v3/out/assets/table-D17Bwjdk.js +6 -0
- package/gui/v3/out/assets/toolkit-DToHxdMP.js +1 -0
- package/gui/v3/out/assets/ttcn-cfg-B9xdYoR4.js +1 -0
- package/gui/v3/out/assets/users-DI3wqkEI.js +1 -0
- package/gui/v3/out/favicon.png +0 -0
- package/gui/v3/out/index.html +41 -0
- package/gui/v3/out/logo192.png +0 -0
- package/gui/v3/out/logo512.png +0 -0
- package/gui/v3/out/manifest.json +25 -0
- package/gui/v3/out/monacoeditorwork/editor.worker.bundle.js +13519 -0
- package/gui/v3/out/monacoeditorwork/graphql.worker..bundle.js +32105 -0
- package/gui/v3/out/monacoeditorwork/json.worker.bundle.js +21320 -0
- package/gui/v3/out/robots.txt +3 -0
- package/gui/v3/package-lock.json +7193 -0
- package/gui/v3/package.json +69 -0
- package/gui/v3/public/assets/icons/home-bg-job.png +0 -0
- package/gui/v3/public/assets/icons/home-constants.png +0 -0
- package/gui/v3/public/assets/icons/home-database.png +0 -0
- package/gui/v3/public/assets/icons/home-graphql.png +0 -0
- package/gui/v3/public/assets/icons/home-info-fill-light.png +0 -0
- package/gui/v3/public/assets/icons/home-info-light.png +0 -0
- package/gui/v3/public/assets/icons/home-liquid.png +0 -0
- package/gui/v3/public/assets/icons/home-logs.png +0 -0
- package/gui/v3/public/assets/icons/home-pin-fill-light.png +0 -0
- package/gui/v3/public/assets/icons/home-pin-light.png +0 -0
- package/gui/v3/public/assets/icons/home-support.png +0 -0
- package/gui/v3/public/assets/icons/home-users.png +0 -0
- package/gui/v3/public/assets/icons/menu-bg-job-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-bg-job-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-console-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-console-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-constants-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-constants-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-database-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-database-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-docs-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-docs-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-graphql-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-graphql-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-iia-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-iia-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-liquid-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-liquid-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-logs-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-logs-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-support-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-support-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-theme-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-theme-light.png +0 -0
- package/gui/v3/public/assets/icons/menu-users-dark.png +0 -0
- package/gui/v3/public/assets/icons/menu-users-light.png +0 -0
- package/gui/v3/public/assets/icons/search-icon-dark.svg +3 -0
- package/gui/v3/public/assets/ins-logo-dark.svg +35 -0
- package/gui/v3/public/assets/ins-logo-light.svg +35 -0
- package/gui/v3/public/favicon.png +0 -0
- package/gui/v3/public/logo192.png +0 -0
- package/gui/v3/public/logo512.png +0 -0
- package/gui/v3/public/manifest.json +25 -0
- package/gui/v3/public/robots.txt +3 -0
- package/gui/v3/src/components/CodeEditor.tsx +100 -0
- package/gui/v3/src/components/commons/DatePicker.tsx +93 -0
- package/gui/v3/src/components/commons/DateRangeFilter.tsx +76 -0
- package/gui/v3/src/components/commons/InputBox.tsx +88 -0
- package/gui/v3/src/components/data/DataPagination.tsx +116 -0
- package/gui/v3/src/components/data/DataTable.tsx +84 -0
- package/gui/v3/src/components/layout/Header.tsx +42 -0
- package/gui/v3/src/components/layout/Layout.tsx +15 -0
- package/gui/v3/src/components/ui/alert.tsx +66 -0
- package/gui/v3/src/components/ui/badge.tsx +48 -0
- package/gui/v3/src/components/ui/button.tsx +59 -0
- package/gui/v3/src/components/ui/calendar.tsx +211 -0
- package/gui/v3/src/components/ui/card.tsx +92 -0
- package/gui/v3/src/components/ui/dropdown-menu.tsx +255 -0
- package/gui/v3/src/components/ui/hover-card.tsx +42 -0
- package/gui/v3/src/components/ui/input.tsx +21 -0
- package/gui/v3/src/components/ui/navigation-menu.tsx +168 -0
- package/gui/v3/src/components/ui/pagination.tsx +127 -0
- package/gui/v3/src/components/ui/popover.tsx +46 -0
- package/gui/v3/src/components/ui/resizable.tsx +54 -0
- package/gui/v3/src/components/ui/select.tsx +183 -0
- package/gui/v3/src/components/ui/separator.tsx +28 -0
- package/gui/v3/src/components/ui/sheet.tsx +137 -0
- package/gui/v3/src/components/ui/sidebar.tsx +724 -0
- package/gui/v3/src/components/ui/skeleton.tsx +13 -0
- package/gui/v3/src/components/ui/switch.tsx +29 -0
- package/gui/v3/src/components/ui/table.tsx +114 -0
- package/gui/v3/src/components/ui/tooltip.tsx +61 -0
- package/gui/v3/src/features/config/context.ts +21 -0
- package/gui/v3/src/features/config/hooks.ts +11 -0
- package/gui/v3/src/features/config/provider.tsx +33 -0
- package/gui/v3/src/features/config/services.ts +14 -0
- package/gui/v3/src/features/config/type.ts +7 -0
- package/gui/v3/src/features/database/components/DatabaseLayout.tsx +44 -0
- package/gui/v3/src/features/database/components/DatabaseLoader.tsx +3 -0
- package/gui/v3/src/features/database/components/DatabaseNotFound.tsx +6 -0
- package/gui/v3/src/features/database/components/DatabaseSidebar.tsx +60 -0
- package/gui/v3/src/features/database/components/LoadingIndicator.tsx +3 -0
- package/gui/v3/src/features/database/components/RecordsFilter.tsx +89 -0
- package/gui/v3/src/features/database/components/RecordsTable.tsx +64 -0
- package/gui/v3/src/features/database/components/RecordsViewer.tsx +39 -0
- package/gui/v3/src/features/database/graphql/queries.ts +64 -0
- package/gui/v3/src/features/database/hooks/useDatabaseColumns.ts +34 -0
- package/gui/v3/src/features/database/hooks/useRecords.ts +21 -0
- package/gui/v3/src/features/database/hooks/useSelectedTable.ts +14 -0
- package/gui/v3/src/features/database/hooks/useTables.ts +18 -0
- package/gui/v3/src/features/database/reducers/useRecordsVariable.ts +66 -0
- package/gui/v3/src/features/database/schema/records.ts +82 -0
- package/gui/v3/src/features/database/schema/tables.ts +51 -0
- package/gui/v3/src/features/graphiql/components/GraphiQL.tsx +21 -0
- package/gui/v3/src/features/graphiql/style.css +120 -0
- package/gui/v3/src/features/liquid/components/LiquidEditor.tsx +95 -0
- package/gui/v3/src/features/liquid/service.ts +13 -0
- package/gui/v3/src/features/logs/components/LogMessage.tsx +83 -0
- package/gui/v3/src/features/logs/components/LogsTable.tsx +121 -0
- package/gui/v3/src/features/logs/components/LogsViewer.tsx +30 -0
- package/gui/v3/src/features/logs/hooks/useLogs.tsx +59 -0
- package/gui/v3/src/features/logs/types/schema.ts +8 -0
- package/gui/v3/src/features/menu/components/GuiMenu.tsx +32 -0
- package/gui/v3/src/features/menu/components/InsitesMenu.tsx +56 -0
- package/gui/v3/src/features/menu/components/TileMenu.tsx +88 -0
- package/gui/v3/src/features/menu/constants.ts +99 -0
- package/gui/v3/src/features/menu/hooks.ts +11 -0
- package/gui/v3/src/features/menu/store.ts +26 -0
- package/gui/v3/src/features/menu/types.ts +16 -0
- package/gui/v3/src/features/theme/context.tsx +16 -0
- package/gui/v3/src/features/theme/hook.tsx +11 -0
- package/gui/v3/src/features/theme/provider.tsx +35 -0
- package/gui/v3/src/features/theme/store.ts +17 -0
- package/gui/v3/src/features/theme/types.ts +1 -0
- package/gui/v3/src/features/users/components/Users.tsx +77 -0
- package/gui/v3/src/features/users/types.ts +31 -0
- package/gui/v3/src/features/users/usernames.ts +45 -0
- package/gui/v3/src/hooks/use-mobile.ts +19 -0
- package/gui/v3/src/lib/api/constants.ts +1 -0
- package/gui/v3/src/lib/api/errors.ts +22 -0
- package/gui/v3/src/lib/api/request.ts +57 -0
- package/gui/v3/src/lib/api/types.ts +16 -0
- package/gui/v3/src/lib/graphql/hooks.ts +27 -0
- package/gui/v3/src/lib/graphql/request.ts +31 -0
- package/gui/v3/src/lib/graphql/schema/filters.ts +108 -0
- package/gui/v3/src/lib/graphql/schema/sorts.ts +10 -0
- package/gui/v3/src/lib/graphql/types.ts +29 -0
- package/gui/v3/src/lib/providers/entries.ts +21 -0
- package/gui/v3/src/lib/providers/index.tsx +10 -0
- package/gui/v3/src/lib/providers/queryClient.tsx +16 -0
- package/gui/v3/src/lib/providers/types.ts +9 -0
- package/gui/v3/src/lib/utils.ts +30 -0
- package/gui/v3/src/logo.svg +44 -0
- package/gui/v3/src/main.tsx +42 -0
- package/gui/v3/src/pages/ConstantPage.tsx +3 -0
- package/gui/v3/src/pages/DatabasePage.tsx +31 -0
- package/gui/v3/src/pages/GraphqlPage.tsx +9 -0
- package/gui/v3/src/pages/HomePage.tsx +36 -0
- package/gui/v3/src/pages/LiquidPage.tsx +5 -0
- package/gui/v3/src/pages/LogsPage.tsx +10 -0
- package/gui/v3/src/pages/Userspage.tsx +5 -0
- package/gui/v3/src/reportWebVitals.ts +13 -0
- package/gui/v3/src/routeTree.gen.ts +189 -0
- package/gui/v3/src/routes/__root.tsx +6 -0
- package/gui/v3/src/routes/constants.tsx +7 -0
- package/gui/v3/src/routes/database.tsx +6 -0
- package/gui/v3/src/routes/graphql.tsx +6 -0
- package/gui/v3/src/routes/index.tsx +6 -0
- package/gui/v3/src/routes/liquid.tsx +6 -0
- package/gui/v3/src/routes/logs.tsx +6 -0
- package/gui/v3/src/routes/users.tsx +6 -0
- package/gui/v3/src/styles.css +247 -0
- package/gui/v3/tsconfig.json +28 -0
- package/gui/v3/vite.config.ts +43 -0
- package/lib/ServerError.js +122 -0
- package/lib/apiRequest.js +15 -0
- package/lib/archive.js +126 -0
- package/lib/assets/insites-icon.png +0 -0
- package/lib/assets/manifest.js +34 -0
- package/lib/assets/packAssets.js +53 -0
- package/lib/assets.js +56 -0
- package/lib/audit/detailed.js +97 -0
- package/lib/audit/duplicateFile.js +31 -0
- package/lib/audit/extensions.js +53 -0
- package/lib/audit/fileName.js +20 -0
- package/lib/audit/filters.js +99 -0
- package/lib/audit/orphanedIncludes.js +85 -0
- package/lib/audit/tags.js +69 -0
- package/lib/audit.js +47 -0
- package/lib/data/fetchFiles.js +93 -0
- package/lib/data/isValidJSON.js +12 -0
- package/lib/data/uploadFiles.js +92 -0
- package/lib/data/waitForStatus.js +31 -0
- package/lib/deploy/directAssetsUploadStrategy.js +57 -0
- package/lib/deploy/strategy.js +8 -0
- package/lib/directories.js +23 -0
- package/lib/downloadFile.js +16 -0
- package/lib/duration.js +7 -0
- package/lib/files.js +96 -0
- package/lib/insites-apig.js +18 -0
- package/lib/insites-console.js +24 -0
- package/lib/logger/rainbow.js +11 -0
- package/lib/logger/simple.js +9 -0
- package/lib/logger.js +63 -0
- package/lib/logsv2/http.js +40 -0
- package/lib/modules.js +129 -0
- package/lib/portal.js +52 -0
- package/lib/pos-proxy.js +162 -0
- package/lib/prepareArchive.js +49 -0
- package/lib/presignUrl.js +71 -0
- package/lib/proxy.js +75 -0
- package/lib/push.js +62 -0
- package/lib/s3UploadFile.js +56 -0
- package/lib/server.js +123 -0
- package/lib/settings.js +42 -0
- package/lib/shouldBeSynced.js +89 -0
- package/lib/swagger-client.js +287 -0
- package/lib/templates.js +52 -0
- package/lib/updateNotifier.js +8 -0
- package/lib/utils/valid-file-path.js +21 -0
- package/lib/validators/directoryEmpty.js +12 -0
- package/lib/validators/directoryExists.js +12 -0
- package/lib/validators/email.js +8 -0
- package/lib/validators/existence.js +9 -0
- package/lib/validators/index.js +13 -0
- package/lib/validators/url.js +8 -0
- package/lib/watch-files-extensions.js +39 -0
- package/lib/watch.js +192 -0
- package/mock/app.js +45 -0
- package/mock/bin/www +91 -0
- package/mock/package-lock.json +2287 -0
- package/mock/package.json +18 -0
- package/mock/public/stylesheets/style.css +8 -0
- package/mock/responses/constants.js +39 -0
- package/mock/responses/databases.js +3589 -0
- package/mock/responses/logs.js +126 -0
- package/mock/responses/records.js +443 -0
- package/mock/responses/schemas.js +36896 -0
- package/mock/responses/users.js +194 -0
- package/mock/routes/api.js +53 -0
- package/mock/routes/index.js +13 -0
- package/mock/routes/users.js +9 -0
- package/mock/views/error.jade +6 -0
- package/mock/views/index.jade +5 -0
- package/mock/views/layout.jade +7 -0
- package/package.json +77 -0
- package/tests/archive.test.js +33 -0
- package/tests/deploy.test.js +26 -0
- package/tests/fixtures/archive/default/app/assets/images/insites-logo.svg +55 -0
- package/tests/fixtures/archive/default/app/views/pages/hello.liquid +4 -0
- package/tests/fixtures/archive/default/modules/testModule/public/views/pages/hello-test-module.liquid +4 -0
- package/tests/fixtures/archive/default/modules/testModule/public/views/partials/dir/subdir/foo.liquid +1 -0
- package/tests/fixtures/deploy/default/app/assets/images/insites-logo.svg +55 -0
- package/tests/fixtures/deploy/default/app/views/pages/index.liquid +6 -0
- package/tests/fixtures/deploy/default/app/views/partials/test.liquid +1 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/README.md +22 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/api_calls/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/assets/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/emails/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/graphql/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/model_schemas/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/smses/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/translations/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/views/layouts/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/views/pages/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/private/views/partials/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/api_calls/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/assets/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/emails/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/graphql/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/model_schemas/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/smses/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/translations/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/layouts/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/pages/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/pages/demo.json.liquid +4 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/partials/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/partials/components/.keep +0 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/partials/components/test.html.liquid +1 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/public/views/partials/components/test.liquid +1 -0
- package/tests/fixtures/deploy/default/modules/insites-cli-demo-module/template-values.json +7 -0
- package/tests/utils/cliPath.js +4 -0
- package/tests/utils/exec.js +12 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { defineConfig } from "vite";
|
|
2
|
+
import viteReact from "@vitejs/plugin-react";
|
|
3
|
+
import tailwindcss from "@tailwindcss/vite";
|
|
4
|
+
|
|
5
|
+
import { tanstackRouter } from "@tanstack/router-plugin/vite";
|
|
6
|
+
import { resolve } from "node:path";
|
|
7
|
+
|
|
8
|
+
import $monacoEditorPlugin from "vite-plugin-monaco-editor";
|
|
9
|
+
const monacoEditorPlugin = ($monacoEditorPlugin as any).default ?? $monacoEditorPlugin;
|
|
10
|
+
|
|
11
|
+
const testConfig = {
|
|
12
|
+
test: {
|
|
13
|
+
globals: true,
|
|
14
|
+
environment: "jsdom",
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// https://vitejs.dev/config/
|
|
19
|
+
export default defineConfig({
|
|
20
|
+
build: {
|
|
21
|
+
outDir: "out",
|
|
22
|
+
},
|
|
23
|
+
plugins: [
|
|
24
|
+
tanstackRouter({ autoCodeSplitting: true }),
|
|
25
|
+
viteReact(),
|
|
26
|
+
tailwindcss(),
|
|
27
|
+
monacoEditorPlugin({
|
|
28
|
+
languageWorkers: ["editorWorkerService", "json"],
|
|
29
|
+
customWorkers: [
|
|
30
|
+
{
|
|
31
|
+
label: "graphql",
|
|
32
|
+
entry: "monaco-graphql/esm/graphql.worker.js",
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
}),
|
|
36
|
+
],
|
|
37
|
+
...testConfig,
|
|
38
|
+
resolve: {
|
|
39
|
+
alias: {
|
|
40
|
+
"@": resolve(__dirname, "./src"),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
});
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
const logger = require("./logger");
|
|
2
|
+
|
|
3
|
+
const shouldExit = (request) => {
|
|
4
|
+
const endsWith = (str) => request.options.uri.endsWith(str);
|
|
5
|
+
|
|
6
|
+
if (endsWith("releases/sync") || endsWith("/api/graph")) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const ServerError = {
|
|
12
|
+
gatewayTimeout: (request) => {
|
|
13
|
+
logger.Debug(
|
|
14
|
+
`Gateway timeout error: ${JSON.stringify(request, null, 2)}`
|
|
15
|
+
);
|
|
16
|
+
logger.Error("Gateway timed out.", {
|
|
17
|
+
hideTimestamp: true,
|
|
18
|
+
exit: shouldExit(request),
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
badGateway: (request) => {
|
|
23
|
+
logger.Debug(`Bad gateway error: ${JSON.stringify(request, null, 2)}`);
|
|
24
|
+
logger.Error("Bad gateway.", {
|
|
25
|
+
hideTimestamp: true,
|
|
26
|
+
exit: shouldExit(request),
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
internal: (request) => {
|
|
31
|
+
logger.Debug(
|
|
32
|
+
`Internal server error: ${JSON.stringify(request, null, 2)}`
|
|
33
|
+
);
|
|
34
|
+
logger.Error(
|
|
35
|
+
"Something went wrong on the server.",
|
|
36
|
+
{
|
|
37
|
+
hideTimestamp: true,
|
|
38
|
+
exit: shouldExit(request),
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
},
|
|
42
|
+
|
|
43
|
+
entityTooLarge: (request) => {
|
|
44
|
+
logger.Debug(
|
|
45
|
+
`Entity too large: ${JSON.stringify(request.response, null, 2)}`
|
|
46
|
+
);
|
|
47
|
+
logger.Error(
|
|
48
|
+
"Archive you are trying to send is too large. Limit is 50MB.",
|
|
49
|
+
{ hideTimestamp: true }
|
|
50
|
+
);
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
unprocessableEntity: (request) => {
|
|
54
|
+
logger.Debug(
|
|
55
|
+
`Unprocessable entity: ${JSON.stringify(request, null, 2)}`
|
|
56
|
+
);
|
|
57
|
+
const body = request.response.body;
|
|
58
|
+
const error = body.error || (body.errors && body.errors.join(", "));
|
|
59
|
+
if (error) {
|
|
60
|
+
const message = `${error}\n${
|
|
61
|
+
(body.details && body.details.file_path) || ""
|
|
62
|
+
}`;
|
|
63
|
+
logger.Error(message, {
|
|
64
|
+
hideTimestamp: true,
|
|
65
|
+
exit: shouldExit(request),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
notFound: (request) => {
|
|
71
|
+
logger.Debug(`Not found: ${JSON.stringify(request, null, 2)}`);
|
|
72
|
+
const body = request.response.body;
|
|
73
|
+
logger.Error(
|
|
74
|
+
`${body.error}\n${(body.details && body.details.file_path) || ""}`,
|
|
75
|
+
{
|
|
76
|
+
hideTimestamp: true,
|
|
77
|
+
exit: shouldExit(request),
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
},
|
|
81
|
+
|
|
82
|
+
unauthorized: (request) => {
|
|
83
|
+
logger.Debug(`Unauthorized: ${JSON.stringify(request, null, 2)}`);
|
|
84
|
+
logger.Error(
|
|
85
|
+
"You are unauthorized to do this operation. Check if your Token/Instance UUID or email/password are correct.",
|
|
86
|
+
{
|
|
87
|
+
hideTimestamp: true,
|
|
88
|
+
exit: shouldExit(request),
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
addressNotFound: (request) => {
|
|
94
|
+
logger.Debug(
|
|
95
|
+
`Host name not found: ${JSON.stringify(request, null, 2)}`
|
|
96
|
+
);
|
|
97
|
+
logger.Error(`Could not resolve hostname: ${request.cause.hostname}`, {
|
|
98
|
+
hideTimestamp: true,
|
|
99
|
+
});
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
netDown: (request) => {
|
|
103
|
+
logger.Debug(`Net down: ${JSON.stringify(request, null, 2)}`);
|
|
104
|
+
logger.Error("Network is down", {
|
|
105
|
+
hideTimestamp: true,
|
|
106
|
+
exit: shouldExit(request),
|
|
107
|
+
});
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
default: (request) => {
|
|
111
|
+
logger.Debug(
|
|
112
|
+
`Default error: ${JSON.stringify(request.response, null, 2)}`
|
|
113
|
+
);
|
|
114
|
+
const err = JSON.stringify(request.response, null, 2).replace(
|
|
115
|
+
/Token [a-f0-9]{40}/,
|
|
116
|
+
"Token: <censored>"
|
|
117
|
+
);
|
|
118
|
+
logger.Error(err, { hideTimestamp: true });
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
module.exports = ServerError;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const requestPromise = require('request-promise');
|
|
2
|
+
// const errors = require('request-promise/errors');
|
|
3
|
+
|
|
4
|
+
const logger = require('./logger');
|
|
5
|
+
// const ServerError = require('./ServerError');
|
|
6
|
+
|
|
7
|
+
const apiRequest = ({ method = 'GET', uri, body, headers, formData, json = true, forever, request = requestPromise }) => {
|
|
8
|
+
logger.Debug(`[${method}] ${uri}`);
|
|
9
|
+
return request({method, uri, body, headers, formData, json, forever})
|
|
10
|
+
// when we catch the error here we are not able to react to them later
|
|
11
|
+
// .catch(errors.StatusCodeError, ServerError.handler)
|
|
12
|
+
// .catch(errors.RequestError, ServerError.requestHandler)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module.exports = apiRequest;
|
package/lib/archive.js
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const shell = require('shelljs');
|
|
3
|
+
const glob = require('fast-glob');
|
|
4
|
+
const unzipper = require('unzipper');
|
|
5
|
+
|
|
6
|
+
const templates = require('../lib/templates');
|
|
7
|
+
const logger = require('../lib/logger');
|
|
8
|
+
const settings = require('../lib/settings');
|
|
9
|
+
const dir = require('../lib/directories');
|
|
10
|
+
const prepareArchive = require('../lib/prepareArchive');
|
|
11
|
+
|
|
12
|
+
const isEmpty = (dir) => shell.ls(dir).length == 0;
|
|
13
|
+
|
|
14
|
+
const addModulesToArchive = async (archive, withoutAssets) => {
|
|
15
|
+
if (!fs.existsSync(dir.MODULES)) {
|
|
16
|
+
return Promise.resolve(true);
|
|
17
|
+
}
|
|
18
|
+
const modules = await glob('*', { cwd: dir.MODULES, onlyFiles: false });
|
|
19
|
+
return Promise.all(modules.map((module) => addModuleToArchive(module, archive, withoutAssets)));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const addModuleToArchive = (module, archive, withoutAssets, pattern = '**/{private,public}/**') => {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
glob(pattern, {
|
|
25
|
+
cwd: `${dir.MODULES}/${module}`,
|
|
26
|
+
filesOnly: true,
|
|
27
|
+
})
|
|
28
|
+
.then((files) => {
|
|
29
|
+
const moduleTemplateData = settings.loadSettingsFileForModule(module);
|
|
30
|
+
|
|
31
|
+
return Promise.all(
|
|
32
|
+
files
|
|
33
|
+
.filter((file) => {
|
|
34
|
+
return !withoutAssets || !(file.startsWith('public/assets/') || file.startsWith('private/assets'));
|
|
35
|
+
})
|
|
36
|
+
.map((f) => {
|
|
37
|
+
const path = `${dir.MODULES}/${module}/${f}`;
|
|
38
|
+
return new Promise((resolve, reject) => {
|
|
39
|
+
fs.lstat(path, (err, stat) => {
|
|
40
|
+
if (!stat.isDirectory()) {
|
|
41
|
+
const filledTemplate = templates.fillInTemplateValues(path, moduleTemplateData);
|
|
42
|
+
archive.append(filledTemplate, { name: path });
|
|
43
|
+
}
|
|
44
|
+
resolve();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
})
|
|
48
|
+
).then(() => resolve());
|
|
49
|
+
})
|
|
50
|
+
.catch((e) => {
|
|
51
|
+
logger.Error(e);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const findAppDirectory = () => {
|
|
57
|
+
let appDirectory = dir.APP;
|
|
58
|
+
if (dir.toWatch().length === 0) {
|
|
59
|
+
return logger.Error(
|
|
60
|
+
`Could not find any directory to deploy. Looked for ${dir.APP}, and ${dir.MODULES}`,
|
|
61
|
+
{ exit: false }
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (!fs.existsSync(dir.APP) && fs.existsSync(dir.LEGACY_APP)) {
|
|
66
|
+
logger.Debug(`${dir.APP} not found, but ${dir.LEGACY_APP} is present. Setting ${dir.LEGACY_APP} as app dir.`);
|
|
67
|
+
logger.Warn(`Falling back to legacy app directory name. Please consider renaming ${dir.LEGACY_APP} to ${dir.APP}`);
|
|
68
|
+
appDirectory = dir.LEGACY_APP;
|
|
69
|
+
}
|
|
70
|
+
return appDirectory;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const makeArchive = async (env, { withoutAssets }) => {
|
|
74
|
+
const path = env.TARGET || './tmp/release.zip';
|
|
75
|
+
const directory = findAppDirectory();
|
|
76
|
+
if (!directory) return false;
|
|
77
|
+
if (dir.available().length === 0) {
|
|
78
|
+
return logger.Error(`At least one of ${dir.ALLOWED.join(', ')} directories is needed to deploy`, {
|
|
79
|
+
hideTimestamp: true,
|
|
80
|
+
exit: false,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (isEmpty(dir.currentApp()) && !withoutAssets) {
|
|
85
|
+
return logger.Error(
|
|
86
|
+
`${dir.currentApp()} can't be empty if the deploy is not partial - it would remove all the files from the instance`,
|
|
87
|
+
{ hideTimestamp: true, exit: false }
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
const options = {
|
|
91
|
+
cwd: directory,
|
|
92
|
+
ignore: withoutAssets ? ['assets/**'] : [],
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return new Promise(async (resolve, reject) => {
|
|
96
|
+
const releaseArchive = prepareArchive(path, resolve, !withoutAssets);
|
|
97
|
+
// Think and decide
|
|
98
|
+
// Whitelist extensions that need to be included in deploy?
|
|
99
|
+
// Blacklist extensions that are most likely to be problematic (ie. break deploy, like .zip)
|
|
100
|
+
releaseArchive.glob('**/!(*.zip)*', options, { prefix: directory });
|
|
101
|
+
await addModulesToArchive(releaseArchive, withoutAssets);
|
|
102
|
+
await releaseArchive.finalize();
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
async function unArchive(packagePath, successMessage = 'Extraction complete!') {
|
|
107
|
+
const extractPath = process.cwd();
|
|
108
|
+
fs.createReadStream(packagePath)
|
|
109
|
+
.pipe(unzipper.Extract({ path: extractPath }))
|
|
110
|
+
.on('finish', () => {
|
|
111
|
+
fs.unlink(packagePath, (err) => {
|
|
112
|
+
if (err) {
|
|
113
|
+
console.error('Error deleting zip file:', err);
|
|
114
|
+
}
|
|
115
|
+
console.log(successMessage);
|
|
116
|
+
});
|
|
117
|
+
})
|
|
118
|
+
.on('error', (err) => {
|
|
119
|
+
console.error('Error extracting zip file:', err);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
module.exports = {
|
|
124
|
+
makeArchive: makeArchive,
|
|
125
|
+
unArchive,
|
|
126
|
+
};
|
|
Binary file
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const fs = require('fs'),
|
|
2
|
+
normalize = require('normalize-path'),
|
|
3
|
+
dir = require('../directories'),
|
|
4
|
+
files = require('../files');
|
|
5
|
+
|
|
6
|
+
const appDirectory = fs.existsSync(dir.APP) ? dir.APP : dir.LEGACY_APP;
|
|
7
|
+
|
|
8
|
+
const serializerManifestEntry = file => {
|
|
9
|
+
const fileProperties = fs.statSync(file);
|
|
10
|
+
const fileUpdatedAt = Math.floor(new Date(fileProperties['mtime']) / 1000);
|
|
11
|
+
const fileSize = fileProperties['size'];
|
|
12
|
+
return { physical_file_path: file.replace(new RegExp(`^${appDirectory}/`), ''), updated_at: fileUpdatedAt, file_size: fileSize };
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const manifestGenerate = async () => {
|
|
16
|
+
const assets = await files.getAssets();
|
|
17
|
+
return manifestGenerateForAssets(assets);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const manifestGenerateForAssets = (assets) => {
|
|
21
|
+
let manifest = {};
|
|
22
|
+
for (const file of assets) {
|
|
23
|
+
const normalizedFile = normalize(file);
|
|
24
|
+
const path = normalizedFile.replace(new RegExp(`(public|private)/assets/|(${appDirectory})/assets/`), '');
|
|
25
|
+
manifest[path] = serializerManifestEntry(normalizedFile);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return manifest;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = {
|
|
32
|
+
manifestGenerate: manifestGenerate,
|
|
33
|
+
manifestGenerateForAssets: manifestGenerateForAssets
|
|
34
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const archiver = require('archiver-promise'),
|
|
2
|
+
fs = require('fs'),
|
|
3
|
+
glob = require('fast-glob'),
|
|
4
|
+
shell = require('shelljs'),
|
|
5
|
+
templates = require('../templates'),
|
|
6
|
+
settings = require('../settings'),
|
|
7
|
+
dir = require('../directories');
|
|
8
|
+
|
|
9
|
+
const appDirectory = fs.existsSync(dir.APP) ? dir.APP : dir.LEGACY_APP;
|
|
10
|
+
|
|
11
|
+
const addModulesToArchive = async archive => {
|
|
12
|
+
if (!fs.existsSync(dir.MODULES)) return true;
|
|
13
|
+
|
|
14
|
+
let modules = await glob('./*', { cwd: dir.MODULES, onlyDirectories: true });
|
|
15
|
+
for (const module of modules) {
|
|
16
|
+
await addModuleToArchive(module, archive);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const publicAssetsSameAsPrivate = (file, files) => {
|
|
21
|
+
return file.startsWith('public/assets') && files.includes(file.replace(/public/, 'private'));
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const addModuleToArchive = async (module, archive, pattern = '{public,private}/assets/**') => {
|
|
25
|
+
let files = await glob(pattern, { cwd: `${dir.MODULES}/${module}` });
|
|
26
|
+
for (const f of files) {
|
|
27
|
+
if (publicAssetsSameAsPrivate(f, files)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const path = `${dir.MODULES}/${module}/${f}`;
|
|
32
|
+
const pathInArchive = path.replace(/(public|private)\/assets\//, '');
|
|
33
|
+
const filledTemplate = templates.fillInTemplateValues(path, settings.loadSettingsFileForModule(module));
|
|
34
|
+
archive.append(filledTemplate, {
|
|
35
|
+
name: pathInArchive
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const prepareDestination = path => {
|
|
41
|
+
shell.mkdir('-p', 'tmp');
|
|
42
|
+
if (path && path.length > 0) shell.rm('-rf', path);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const packAssets = async path => {
|
|
46
|
+
prepareDestination(path);
|
|
47
|
+
const assetsArchive = archiver(path, { zlib: { level: 6 }, store: true });
|
|
48
|
+
assetsArchive.glob('**/*', { cwd: `${appDirectory}/assets` });
|
|
49
|
+
await addModulesToArchive(assetsArchive);
|
|
50
|
+
return assetsArchive.finalize();
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
module.exports = packAssets;
|
package/lib/assets.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const request = require('request-promise');
|
|
2
|
+
const packAssets = require('./assets/packAssets'),
|
|
3
|
+
manifestGenerate = require('./assets/manifest').manifestGenerate,
|
|
4
|
+
logger = require('./logger'),
|
|
5
|
+
uploadFile = require('./s3UploadFile').uploadFile,
|
|
6
|
+
presignUrl = require('./presignUrl').presignUrl;
|
|
7
|
+
|
|
8
|
+
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
|
|
9
|
+
|
|
10
|
+
const waitForUnpack = async fileUrl => {
|
|
11
|
+
logger.Debug('Waiting for assets to be propagated to CDN');
|
|
12
|
+
|
|
13
|
+
let fileExists = false;
|
|
14
|
+
let counter = 0;
|
|
15
|
+
do {
|
|
16
|
+
logger.Debug(`Waiting for: ${fileUrl} to be deleted.`);
|
|
17
|
+
counter += 1;
|
|
18
|
+
if (fileExists) await sleep(1000);
|
|
19
|
+
fileExists = await request
|
|
20
|
+
.head(fileUrl)
|
|
21
|
+
.then(() => true)
|
|
22
|
+
.catch({ statusCode: 403 }, () => false)
|
|
23
|
+
.catch(error => logger.Error(error));
|
|
24
|
+
} while (fileExists && counter < 90);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const deployAssets = async (gateway, authData) => {
|
|
28
|
+
logger.Debug('Generating and uploading new assets manifest...');
|
|
29
|
+
const assetsArchiveName = './tmp/assets.zip';
|
|
30
|
+
const instance = await gateway.getInstance();
|
|
31
|
+
const now = Math.floor(new Date() / 1000);
|
|
32
|
+
const remoteAssetsArchiveName = `instances/${instance.id}/assets/${now}.assets_deploy.zip`;
|
|
33
|
+
logger.Debug(remoteAssetsArchiveName);
|
|
34
|
+
try {
|
|
35
|
+
await packAssets(assetsArchiveName);
|
|
36
|
+
const data = await presignUrl(remoteAssetsArchiveName, assetsArchiveName, authData.url, authData.key);
|
|
37
|
+
logger.Debug(data);
|
|
38
|
+
logger.Debug(assetsArchiveName)
|
|
39
|
+
await uploadFile(assetsArchiveName, data.uploadUrl);
|
|
40
|
+
logger.Debug('Assets uploaded to S3.');
|
|
41
|
+
await waitForUnpack(data.accessUrl);
|
|
42
|
+
const manifest = await manifestGenerate();
|
|
43
|
+
logger.Debug(manifest);
|
|
44
|
+
await gateway.sendManifest(manifest);
|
|
45
|
+
logger.Debug('Uploading assets');
|
|
46
|
+
} catch (e) {
|
|
47
|
+
logger.Error(e);
|
|
48
|
+
logger.Error(e.message);
|
|
49
|
+
logger.Error(e.stack);
|
|
50
|
+
logger.Error('Deploy assets failed.');
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
module.exports = {
|
|
55
|
+
deployAssets: deployAssets
|
|
56
|
+
};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
const fs = require('fs');
|
|
2
|
+
const glob = require('fast-glob');
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
glob [string - glob]
|
|
6
|
+
Try to be as specific as possible to make it fast.
|
|
7
|
+
Omit `app` and `modules` in your definition
|
|
8
|
+
|
|
9
|
+
test [string - regexp]
|
|
10
|
+
What test will look for in the file contents. Make sure you escape as this is JS string (ie. doube backslash \)
|
|
11
|
+
|
|
12
|
+
message [string]
|
|
13
|
+
Message to be displayed if offence is found
|
|
14
|
+
*/
|
|
15
|
+
const detailed = [
|
|
16
|
+
{
|
|
17
|
+
name: 'profiler',
|
|
18
|
+
glob: 'views/pages/**/*.liquid',
|
|
19
|
+
test: '^enable_profiler: true$',
|
|
20
|
+
message: `[PERFORMANCE] Please remove "enable_profiler: true" setting for performance reasons.`
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'unnecessary_brackets',
|
|
24
|
+
glob: '*.liquid',
|
|
25
|
+
test: '\\.name\\s*-?}}\\[\\]',
|
|
26
|
+
message: `[DEPRECATED] Please remove hardcoded array indicators ([]) from your input names.
|
|
27
|
+
\nExample: <input name="{{ fields.company.name }}[]"> becomes <input name="{{ fields.company.name }}">`
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'resource_id',
|
|
31
|
+
glob: 'views/**/*.liquid',
|
|
32
|
+
test: '{%-?\\s*include_form.*resource_id:',
|
|
33
|
+
message: '[DEPRECATED ARGUMENT] "resource_id" of include_form tag, please replace with "id"'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'configuration',
|
|
37
|
+
glob: '{form_configurations,forms}/**/*.liquid',
|
|
38
|
+
test: '^configuration:',
|
|
39
|
+
message: '[DEPRECATED KEY] "configuration", please replace with "fields"'
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'attribute_type',
|
|
43
|
+
glob: '{transactable_types,instance_profile_types,user_profile_types,custom_model_types,model_schemas}/**/*.yml',
|
|
44
|
+
test: '\\s*attribute_type:',
|
|
45
|
+
message: '[DEPRECATED KEY] "attribute_type", please replace with "type"'
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'custom_attributes',
|
|
49
|
+
glob: '{transactable_types,instance_profile_types,user_profile_types,custom_model_types,model_schemas}/**/*.yml',
|
|
50
|
+
test: '^custom_attributes:',
|
|
51
|
+
message: '[DEPRECATED KEY] "custom_attributes", please replace with "properties"'
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: 'camel_case',
|
|
55
|
+
glob: '{transactable_types,instance_profile_types,user_profile_types,custom_model_types,model_schemas}/**/*.yml',
|
|
56
|
+
test: '^name:\\s+([a-z\\_]*( |[A-Z]|-)[a-z\\_]*)+',
|
|
57
|
+
message: '[CONVENTION] Please use snake_case naming convention in model names'
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'headers',
|
|
61
|
+
glob: 'api_calls/**/*.liquid',
|
|
62
|
+
test: '^headers:',
|
|
63
|
+
message: '[DEPRECATED] "headers" has been renamed to "request_headers"',
|
|
64
|
+
}
|
|
65
|
+
];
|
|
66
|
+
|
|
67
|
+
module.exports = {
|
|
68
|
+
audit: async () => {
|
|
69
|
+
let results = {};
|
|
70
|
+
|
|
71
|
+
for (let rule of detailed) {
|
|
72
|
+
const files = await glob(`{app,modules,marketplace_builder}/**/${rule.glob}`);
|
|
73
|
+
|
|
74
|
+
for (let file of files) {
|
|
75
|
+
const fileContents = fs.readFileSync(file, { encoding: 'utf8' });
|
|
76
|
+
const match = RegExp(rule.test, 'm').test(fileContents);
|
|
77
|
+
|
|
78
|
+
if (!match) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const currentFiles = results[rule.name] && results[rule.name].files;
|
|
83
|
+
const updatedFiles = (currentFiles || []).concat(file);
|
|
84
|
+
|
|
85
|
+
results = {
|
|
86
|
+
...results,
|
|
87
|
+
[rule.name]: {
|
|
88
|
+
files: updatedFiles,
|
|
89
|
+
message: rule.message
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return results;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const glob = require('fast-glob');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
|
|
4
|
+
const underScorePrefix = /^_*/;
|
|
5
|
+
|
|
6
|
+
module.exports = {
|
|
7
|
+
audit: async () => {
|
|
8
|
+
let results = {};
|
|
9
|
+
|
|
10
|
+
const files = await glob(['app/views/partials/**/_*.liquid', 'modules/**/{private,public}/views/partials/**/_*.liquid']);
|
|
11
|
+
for (let file of files) {
|
|
12
|
+
let parts = file.split('/');
|
|
13
|
+
let fileName = parts[parts.length - 1];
|
|
14
|
+
parts[parts.length - 1] = fileName.replace(underScorePrefix, '', -1);
|
|
15
|
+
const fileWithoutUndescore = parts.join('/');
|
|
16
|
+
|
|
17
|
+
if (fs.existsSync(fileWithoutUndescore)) {
|
|
18
|
+
results = {
|
|
19
|
+
...results,
|
|
20
|
+
[`Multiple file names with the same partial for ${fileName}`]: {
|
|
21
|
+
files: [file, fileWithoutUndescore],
|
|
22
|
+
message: 'Multiple file names with the same partial path'
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return results;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const glob = require('fast-glob');
|
|
2
|
+
|
|
3
|
+
const rules = [
|
|
4
|
+
{
|
|
5
|
+
directories: [
|
|
6
|
+
'forms',
|
|
7
|
+
'form_configurations',
|
|
8
|
+
'authorization_policies',
|
|
9
|
+
'notifications',
|
|
10
|
+
'emails',
|
|
11
|
+
'api_calls',
|
|
12
|
+
'smses'
|
|
13
|
+
],
|
|
14
|
+
extension: '.liquid'
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
directories: [
|
|
18
|
+
'model_schemas',
|
|
19
|
+
'custom_model_types',
|
|
20
|
+
'user_profile_types',
|
|
21
|
+
'instance_profile_types'
|
|
22
|
+
],
|
|
23
|
+
extension: '.yml'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
directories: ['graphql', 'graph_queries'],
|
|
27
|
+
extension: '.graphql'
|
|
28
|
+
}
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
module.exports = {
|
|
32
|
+
audit: async () => {
|
|
33
|
+
let results = {};
|
|
34
|
+
|
|
35
|
+
for (let rule of rules) {
|
|
36
|
+
for (let dir of rule.directories) {
|
|
37
|
+
const files = (await glob([`app/${dir}/**/*`, `modules/*/{public,private}/${dir}/**/*`]))
|
|
38
|
+
.filter(file => !file.match(`\\${rule.extension}$`));
|
|
39
|
+
if (files.length > 0) {
|
|
40
|
+
results = {
|
|
41
|
+
...results,
|
|
42
|
+
[`Only ${rule.extension} files should be in ${dir}`]: {
|
|
43
|
+
files: files,
|
|
44
|
+
message: `Only ${rule.extension} files should be in ${dir} directory`
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return results;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const glob = require('fast-glob');
|
|
2
|
+
const isValidFilePath = require('../utils/valid-file-path');
|
|
3
|
+
|
|
4
|
+
module.exports = {
|
|
5
|
+
audit: async () => {
|
|
6
|
+
const files = await glob(['app/**/*', 'modules/*/{private,public}/**/*']);
|
|
7
|
+
|
|
8
|
+
const invalidFileNames = files.filter(filepath => !isValidFilePath(filepath));
|
|
9
|
+
if (invalidFileNames.length > 0) {
|
|
10
|
+
return {
|
|
11
|
+
['Invalid filename']: {
|
|
12
|
+
files: invalidFileNames,
|
|
13
|
+
message: 'Invalid filename. It contains prohibited special characters.'
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
};
|