@webship.co/workspace 1.0.0-alpha1 → 1.0.0-beta2
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/LICENSE +339 -0
- package/README.md +28 -364
- package/core/bin/workspace.js +135 -0
- package/core/config/settings.labels.yml +514 -0
- package/core/config/settings.template.yml +292 -0
- package/core/config/style.yml +53 -0
- package/core/config/theme.default.yml +161 -0
- package/core/config/theme.dispatch.yml +166 -0
- package/core/config/theme.drupal.yml +175 -0
- package/core/config/theme.ember.yml +160 -0
- package/core/config/theme.github.yml +172 -0
- package/core/config/theme.gitlab.yml +168 -0
- package/core/config/theme.press.yml +161 -0
- package/core/config/theme.slate.yml +160 -0
- package/core/config/theme.upsun.yml +174 -0
- package/core/docs/architecture.svg +65 -0
- package/core/docs/getting-started.md +51 -0
- package/core/docs/plugins.md +27 -0
- package/core/docs/releases.md +23 -0
- package/core/docs/testing.md +15 -0
- package/core/docs/workspaces.md +25 -0
- package/core/scripts/args/arg-ai-items.sh +65 -0
- package/core/scripts/args/arg-autostart.sh +31 -0
- package/core/scripts/args/arg-avatar-agent.sh +28 -0
- package/core/scripts/args/arg-avatar-catalog.sh +12 -0
- package/core/scripts/args/arg-avatar-character.sh +68 -0
- package/core/scripts/args/arg-avatar-voice.sh +24 -0
- package/core/scripts/args/arg-avatar.sh +22 -0
- package/core/scripts/args/arg-checks.sh +36 -0
- package/core/scripts/args/arg-clone.sh +42 -0
- package/core/scripts/args/arg-commands.sh +51 -0
- package/core/scripts/args/arg-cucumber.sh +34 -0
- package/core/scripts/args/arg-distribution.sh +30 -0
- package/core/scripts/args/arg-drupal.sh +39 -0
- package/core/scripts/args/arg-drupal_cms.sh +18 -0
- package/core/scripts/args/arg-gitlab-ci-local.sh +25 -0
- package/core/scripts/args/arg-graphify.sh +36 -0
- package/core/scripts/args/arg-graphs.sh +12 -0
- package/core/scripts/args/arg-hostnames.sh +23 -0
- package/core/scripts/args/arg-milvus-backup.sh +8 -0
- package/core/scripts/args/arg-milvus-mcp.sh +12 -0
- package/core/scripts/args/arg-milvus.sh +32 -0
- package/core/scripts/args/arg-obsidian.sh +17 -0
- package/core/scripts/args/arg-odoo.sh +18 -0
- package/core/scripts/args/arg-penpot-backup.sh +8 -0
- package/core/scripts/args/arg-penpot-mcp.sh +15 -0
- package/core/scripts/args/arg-penpot-token.sh +17 -0
- package/core/scripts/args/arg-penpot.sh +44 -0
- package/core/scripts/args/arg-rag.sh +21 -0
- package/core/scripts/args/arg-ragify.sh +35 -0
- package/core/scripts/args/arg-reclaim.sh +18 -0
- package/core/scripts/args/arg-release.sh +21 -0
- package/core/scripts/args/arg-screen.sh +28 -0
- package/core/scripts/args/arg-site-template.sh +13 -0
- package/core/scripts/args/arg-spdd.sh +16 -0
- package/core/scripts/args/arg-specs.sh +22 -0
- package/core/scripts/args/arg-storage.sh +36 -0
- package/core/scripts/args/arg-testing.sh +36 -0
- package/core/scripts/args/arg-webship.sh +34 -0
- package/core/scripts/args/arg-webships-project.sh +22 -0
- package/core/scripts/args/arg-webships-site-template.sh +17 -0
- package/core/scripts/args/arg-webships.sh +34 -0
- package/core/scripts/args/arg-website-site-template.sh +17 -0
- package/core/scripts/args/arg-website.sh +25 -0
- package/core/scripts/args/arg-wordpress.sh +18 -0
- package/core/scripts/autostart-run.sh +162 -0
- package/core/scripts/autostart-stop.sh +30 -0
- package/core/scripts/autostart-watch.sh +43 -0
- package/core/scripts/autostart.sh +26 -0
- package/core/scripts/bootstrap-functions.sh +117 -0
- package/core/scripts/bootstrap-libraries.sh +10 -0
- package/core/scripts/bootstrap.sh +71 -0
- package/core/scripts/ddev-shim/ddev +122 -0
- package/core/scripts/docker-gid.sh +119 -0
- package/core/scripts/functions/arg-site-template.sh +28 -0
- package/core/scripts/functions/fun-ai-items-lock.sh +175 -0
- package/core/scripts/functions/fun-ai-items-sources.sh +298 -0
- package/core/scripts/functions/fun-ai-items.sh +621 -0
- package/core/scripts/functions/fun-ai-providers.sh +72 -0
- package/core/scripts/functions/fun-autostart.sh +429 -0
- package/core/scripts/functions/fun-avatar.sh +441 -0
- package/core/scripts/functions/fun-backup-item.sh +50 -0
- package/core/scripts/functions/fun-build-distribution.sh +226 -0
- package/core/scripts/functions/fun-build-site-template.sh +104 -0
- package/core/scripts/functions/fun-build-webships.sh +161 -0
- package/core/scripts/functions/fun-build-website.sh +199 -0
- package/core/scripts/functions/fun-checks.sh +243 -0
- package/core/scripts/functions/fun-clone-project.sh +289 -0
- package/core/scripts/functions/fun-commands.sh +521 -0
- package/core/scripts/functions/fun-database.sh +63 -0
- package/core/scripts/functions/fun-ddev-hostnames.sh +213 -0
- package/core/scripts/functions/fun-ddev-nodejs.sh +15 -0
- package/core/scripts/functions/fun-ddev-telemetry.sh +15 -0
- package/core/scripts/functions/fun-default-settings.sh +28 -0
- package/core/scripts/functions/fun-distribution-cucumber.sh +45 -0
- package/core/scripts/functions/fun-distribution-drupal.sh +25 -0
- package/core/scripts/functions/fun-distribution-drupal_cms.sh +35 -0
- package/core/scripts/functions/fun-distribution-webship.sh +28 -0
- package/core/scripts/functions/fun-distribution-webships.sh +33 -0
- package/core/scripts/functions/fun-distribution-website.sh +19 -0
- package/core/scripts/functions/fun-drush.sh +48 -0
- package/core/scripts/functions/fun-elevenlabs.sh +179 -0
- package/core/scripts/functions/fun-files.sh +19 -0
- package/core/scripts/functions/fun-git-worktrees.sh +142 -0
- package/core/scripts/functions/fun-gitlab-ci.sh +156 -0
- package/core/scripts/functions/fun-hostnames-cli.sh +88 -0
- package/core/scripts/functions/fun-milvus.sh +584 -0
- package/core/scripts/functions/fun-odoo.sh +121 -0
- package/core/scripts/functions/fun-penpot.sh +724 -0
- package/core/scripts/functions/fun-project-name.sh +20 -0
- package/core/scripts/functions/fun-rag.sh +253 -0
- package/core/scripts/functions/fun-ragify.sh +165 -0
- package/core/scripts/functions/fun-reclaim.sh +297 -0
- package/core/scripts/functions/fun-release.sh +159 -0
- package/core/scripts/functions/fun-remove-project.sh +319 -0
- package/core/scripts/functions/fun-screen.sh +96 -0
- package/core/scripts/functions/fun-spdd.sh +676 -0
- package/core/scripts/functions/fun-specs-share.sh +237 -0
- package/core/scripts/functions/fun-storage.sh +347 -0
- package/core/scripts/functions/fun-testing.sh +329 -0
- package/core/scripts/functions/fun-users.sh +87 -0
- package/core/scripts/functions/fun-version.sh +72 -0
- package/core/scripts/functions/fun-video-edit.sh +48 -0
- package/core/scripts/functions/fun-voice.sh +45 -0
- package/core/scripts/functions/fun-wordpress.sh +59 -0
- package/core/scripts/host-mounts.sh +161 -0
- package/core/scripts/install.sh +602 -0
- package/core/scripts/libs/__pycache__/video_edit.cpython-312.pyc +0 -0
- package/core/scripts/libs/argparse.sh +93 -0
- package/core/scripts/libs/bash-yaml.sh +52 -0
- package/core/scripts/libs/checks_plan.js +312 -0
- package/core/scripts/libs/elevenlabs.py +627 -0
- package/core/scripts/libs/progress-bar.sh +19 -0
- package/core/scripts/libs/rag_index.py +446 -0
- package/core/scripts/libs/video_edit.py +636 -0
- package/core/scripts/libs/voice.py +430 -0
- package/core/scripts/plugins/jira/host-install.sh +119 -0
- package/core/scripts/plugins/jira/host-mounts.txt +2 -0
- package/core/scripts/plugins/upsun/args/arg-upsun.sh +51 -0
- package/core/scripts/plugins/upsun/functions/fun-upsun.sh +304 -0
- package/core/scripts/plugins/upsun/host-install.sh +99 -0
- package/core/scripts/plugins/upsun/host-mounts.txt +1 -0
- package/core/scripts/plugins/upsun/upsun-ai.sh +133 -0
- package/core/scripts/plugins.sh +152 -0
- package/core/scripts/release.sh +69 -0
- package/core/scripts/storage.sh +39 -0
- package/core/scripts/sync-tooling.sh +246 -0
- package/core/scripts/tests/cmd-smoke-test.sh +109 -0
- package/core/scripts/trust-https.sh +257 -0
- package/core/workspace-app/.ddev/commands/web/test-dashboard +49 -0
- package/core/workspace-app/.ddev/config.yaml +400 -0
- package/core/workspace-app/.ddev/docker-compose.dood.yaml +45 -0
- package/core/workspace-app/.ddev/docker-compose.plugin-jira-twg.yaml +26 -0
- package/core/workspace-app/.ddev/docker-compose.plugin-upsun-upsun-cli.yaml +8 -0
- package/core/workspace-app/.ddev/docker-compose.screens.yaml +15 -0
- package/core/workspace-app/.ddev/nginx_full/nginx-site.conf +114 -0
- package/core/workspace-app/.ddev/web-build/Dockerfile.workspace-app +203 -0
- package/core/workspace-app/.ddev/web-build/ddev-shim-ddev +122 -0
- package/{PLUGINS.md → core/workspace-app/PLUGINS.md} +1 -1
- package/core/workspace-app/README.md +380 -0
- package/{actions → core/workspace-app/actions}/ddev.js +0 -1
- package/{actions → core/workspace-app/actions}/rag.js +0 -1
- package/{actions → core/workspace-app/actions}/testing.js +0 -1
- package/{assistant.js → core/workspace-app/assistant.js} +1 -10
- package/{git-info.js → core/workspace-app/git-info.js} +17 -1
- package/core/workspace-app/package.json +29 -0
- package/core/workspace-app/plugin-catalog.js +50 -0
- package/{plugin-loader.js → core/workspace-app/plugin-loader.js} +19 -1
- package/{plugins-page.js → core/workspace-app/plugins-page.js} +28 -2
- package/{row-layout.js → core/workspace-app/row-layout.js} +0 -1
- package/{server.js → core/workspace-app/server.js} +26 -225
- package/core/workspace-app/tests/features/actions-rail.feature +44 -0
- package/core/workspace-app/tests/features/ai-items.feature +23 -0
- package/core/workspace-app/tests/features/assistant-speech.feature +63 -0
- package/core/workspace-app/tests/features/checks.feature +39 -0
- package/core/workspace-app/tests/features/clone-project.feature +30 -0
- package/core/workspace-app/tests/features/command-authoring.feature +58 -0
- package/core/workspace-app/tests/features/dashboard.feature +57 -0
- package/core/workspace-app/tests/features/menus.feature +29 -0
- package/core/workspace-app/tests/features/plugins/jira/jira.feature +47 -0
- package/core/workspace-app/tests/features/plugins.feature +20 -0
- package/core/workspace-app/tests/features/project-actions.feature +40 -0
- package/core/workspace-app/tests/features/screens.feature +29 -0
- package/core/workspace-app/tests/features/settings.feature +46 -0
- package/core/workspace-app/tests/features/test-reports.feature +32 -0
- package/core/workspace-app/tests/features/theme.feature +40 -0
- package/core/workspace-app/tests/step-definitions/actions-post.steps.js +25 -0
- package/core/workspace-app/tests/step-definitions/assistant-speech.steps.js +152 -0
- package/core/workspace-app/tests/step-definitions/preconditions.steps.js +100 -0
- package/core/workspace-app/tests/unit/_isolated-config.js +31 -0
- package/core/workspace-app/tests/unit/accessibility.test.js +124 -0
- package/core/workspace-app/tests/unit/actions-rail-ux.test.js +56 -0
- package/core/workspace-app/tests/unit/actions-rail.test.js +51 -0
- package/core/workspace-app/tests/unit/ai-inventory.test.js +64 -0
- package/core/workspace-app/tests/unit/app-docs.test.js +64 -0
- package/core/workspace-app/tests/unit/assistant-avatar.test.js +110 -0
- package/core/workspace-app/tests/unit/assistant-cast.test.js +105 -0
- package/core/workspace-app/tests/unit/assistant-send-animation.test.js +15 -0
- package/core/workspace-app/tests/unit/assistant-suggestions.test.js +112 -0
- package/core/workspace-app/tests/unit/assistant-switches.test.js +53 -0
- package/core/workspace-app/tests/unit/assistant-views.test.js +146 -0
- package/core/workspace-app/tests/unit/assistant-working-indicator.test.js +49 -0
- package/core/workspace-app/tests/unit/assistant.test.js +61 -0
- package/core/workspace-app/tests/unit/audio-player.test.js +147 -0
- package/core/workspace-app/tests/unit/audio-voice.test.js +634 -0
- package/core/workspace-app/tests/unit/auth-google.test.js +180 -0
- package/core/workspace-app/tests/unit/autostart-watch.test.js +76 -0
- package/core/workspace-app/tests/unit/browsers.test.js +76 -0
- package/core/workspace-app/tests/unit/build-distribution.test.js +125 -0
- package/core/workspace-app/tests/unit/build-order.test.js +153 -0
- package/core/workspace-app/tests/unit/builder-args.test.js +113 -0
- package/core/workspace-app/tests/unit/builders.test.js +158 -0
- package/core/workspace-app/tests/unit/card-state-toggle.test.js +29 -0
- package/core/workspace-app/tests/unit/changelog.test.js +177 -0
- package/core/workspace-app/tests/unit/chat-thread.test.js +92 -0
- package/core/workspace-app/tests/unit/checks-plan.test.js +205 -0
- package/core/workspace-app/tests/unit/claude-args.test.js +182 -0
- package/core/workspace-app/tests/unit/claude-code-here.test.js +15 -0
- package/core/workspace-app/tests/unit/claude-resume.test.js +147 -0
- package/core/workspace-app/tests/unit/claude-screen-options.test.js +84 -0
- package/core/workspace-app/tests/unit/claude-session.test.js +41 -0
- package/core/workspace-app/tests/unit/command-flags.test.js +45 -0
- package/core/workspace-app/tests/unit/command-palette.test.js +105 -0
- package/core/workspace-app/tests/unit/commands-center.test.js +338 -0
- package/core/workspace-app/tests/unit/composer-menu.test.js +187 -0
- package/core/workspace-app/tests/unit/config-yaml.test.js +116 -0
- package/core/workspace-app/tests/unit/confirm-dialog.test.js +69 -0
- package/core/workspace-app/tests/unit/create-card.test.js +85 -0
- package/core/workspace-app/tests/unit/ddev-addons.test.js +144 -0
- package/core/workspace-app/tests/unit/ddev-auth-ssh.test.js +40 -0
- package/core/workspace-app/tests/unit/ddev-custom-commands.test.js +56 -0
- package/core/workspace-app/tests/unit/ddev-diagnose.test.js +57 -0
- package/core/workspace-app/tests/unit/ddev-domains.test.js +153 -0
- package/core/workspace-app/tests/unit/ddev-hostnames.test.js +143 -0
- package/core/workspace-app/tests/unit/ddev-import.test.js +82 -0
- package/core/workspace-app/tests/unit/ddev-mail.test.js +135 -0
- package/core/workspace-app/tests/unit/ddev-menu-and-create.test.js +28 -0
- package/core/workspace-app/tests/unit/ddev-mutagen.test.js +37 -0
- package/core/workspace-app/tests/unit/ddev-options.test.js +51 -0
- package/core/workspace-app/tests/unit/ddev-share.test.js +40 -0
- package/core/workspace-app/tests/unit/ddev-shim.test.js +57 -0
- package/core/workspace-app/tests/unit/ddev-snapshots.test.js +142 -0
- package/core/workspace-app/tests/unit/ddev-start-daemons.test.js +62 -0
- package/core/workspace-app/tests/unit/ddev-xdebug.test.js +41 -0
- package/core/workspace-app/tests/unit/deep-chat-origin.test.js +38 -0
- package/core/workspace-app/tests/unit/density.test.js +52 -0
- package/core/workspace-app/tests/unit/elevenlabs.test.js +453 -0
- package/core/workspace-app/tests/unit/event-log.test.js +102 -0
- package/core/workspace-app/tests/unit/favicon.test.js +68 -0
- package/core/workspace-app/tests/unit/files-browser.test.js +224 -0
- package/core/workspace-app/tests/unit/git-info.test.js +26 -0
- package/core/workspace-app/tests/unit/grid-and-list.test.js +103 -0
- package/core/workspace-app/tests/unit/host-tool-wrapper.test.js +18 -0
- package/core/workspace-app/tests/unit/html-patterns.test.js +51 -0
- package/core/workspace-app/tests/unit/ide-infra.test.js +28 -0
- package/core/workspace-app/tests/unit/images-ai.test.js +201 -0
- package/core/workspace-app/tests/unit/images-create.test.js +59 -0
- package/core/workspace-app/tests/unit/images-providers.test.js +248 -0
- package/core/workspace-app/tests/unit/images-svg.test.js +213 -0
- package/core/workspace-app/tests/unit/images-workspace.test.js +144 -0
- package/core/workspace-app/tests/unit/jobs-fragment.test.js +66 -0
- package/core/workspace-app/tests/unit/media-ux.test.js +164 -0
- package/core/workspace-app/tests/unit/modal-fit.test.js +87 -0
- package/core/workspace-app/tests/unit/modules-load.test.js +23 -0
- package/core/workspace-app/tests/unit/narration.test.js +186 -0
- package/core/workspace-app/tests/unit/navigation-editor.test.js +260 -0
- package/core/workspace-app/tests/unit/navigation.test.js +254 -0
- package/core/workspace-app/tests/unit/new-folder.test.js +121 -0
- package/core/workspace-app/tests/unit/new-screen-form.test.js +149 -0
- package/core/workspace-app/tests/unit/node-menu.test.js +161 -0
- package/core/workspace-app/tests/unit/notes.test.js +128 -0
- package/core/workspace-app/tests/unit/page-structure.test.js +40 -0
- package/core/workspace-app/tests/unit/page-width.test.js +59 -0
- package/core/workspace-app/tests/unit/php-version.test.js +90 -0
- package/core/workspace-app/tests/unit/plan-card.test.js +44 -0
- package/core/workspace-app/tests/unit/plugin-catalog.test.js +31 -0
- package/core/workspace-app/tests/unit/plugin-system.test.js +251 -0
- package/core/workspace-app/tests/unit/plugins-page.test.js +28 -0
- package/core/workspace-app/tests/unit/plugins.test.js +58 -0
- package/core/workspace-app/tests/unit/project-activity-filter.test.js +180 -0
- package/core/workspace-app/tests/unit/project-make.test.js +143 -0
- package/core/workspace-app/tests/unit/project-name.test.js +202 -0
- package/core/workspace-app/tests/unit/reader.test.js +62 -0
- package/core/workspace-app/tests/unit/release.test.js +92 -0
- package/core/workspace-app/tests/unit/remove-confirm.test.js +37 -0
- package/core/workspace-app/tests/unit/report-pdf.test.js +171 -0
- package/core/workspace-app/tests/unit/round-11.test.js +31 -0
- package/core/workspace-app/tests/unit/round-12.test.js +37 -0
- package/core/workspace-app/tests/unit/row-layout.test.js +585 -0
- package/core/workspace-app/tests/unit/row-menus-fold.test.js +29 -0
- package/core/workspace-app/tests/unit/rows-add-modal.test.js +68 -0
- package/core/workspace-app/tests/unit/screen-runner-queue.test.js +41 -0
- package/core/workspace-app/tests/unit/screen-window.test.js +116 -0
- package/core/workspace-app/tests/unit/screens-beside-running.test.js +19 -0
- package/core/workspace-app/tests/unit/screens-columns.test.js +79 -0
- package/core/workspace-app/tests/unit/screens-menu.test.js +84 -0
- package/core/workspace-app/tests/unit/screens-modal-overlay.test.js +14 -0
- package/core/workspace-app/tests/unit/screens-waiting.test.js +129 -0
- package/core/workspace-app/tests/unit/screens.test.js +74 -0
- package/core/workspace-app/tests/unit/second-storage.test.js +218 -0
- package/core/workspace-app/tests/unit/session-name.test.js +64 -0
- package/core/workspace-app/tests/unit/settings-file.test.js +173 -0
- package/core/workspace-app/tests/unit/settings-nested-list.test.js +54 -0
- package/core/workspace-app/tests/unit/settings-raw.test.js +177 -0
- package/core/workspace-app/tests/unit/shared-prefs.test.js +49 -0
- package/core/workspace-app/tests/unit/speech.test.js +290 -0
- package/core/workspace-app/tests/unit/static-caching.test.js +39 -0
- package/core/workspace-app/tests/unit/status-language.test.js +47 -0
- package/core/workspace-app/tests/unit/tab-modal.test.js +69 -0
- package/core/workspace-app/tests/unit/tab-title.test.js +37 -0
- package/core/workspace-app/tests/unit/template-literals.test.js +52 -0
- package/core/workspace-app/tests/unit/terminal-scrollback.test.js +61 -0
- package/core/workspace-app/tests/unit/terminal-size.test.js +103 -0
- package/core/workspace-app/tests/unit/terminal-style.test.js +84 -0
- package/core/workspace-app/tests/unit/terminal-windows.test.js +154 -0
- package/core/workspace-app/tests/unit/themes.test.js +453 -0
- package/core/workspace-app/tests/unit/tool-labels.test.js +34 -0
- package/core/workspace-app/tests/unit/topbar-icons.test.js +47 -0
- package/core/workspace-app/tests/unit/update-docker-gid.test.js +51 -0
- package/core/workspace-app/tests/unit/user-guide.test.js +60 -0
- package/core/workspace-app/tests/unit/version-check.test.js +98 -0
- package/core/workspace-app/tests/unit/version-link.test.js +50 -0
- package/core/workspace-app/tests/unit/video-borrow.test.js +198 -0
- package/core/workspace-app/tests/unit/video-edit-ask.test.js +93 -0
- package/core/workspace-app/tests/unit/video-edit-short.test.js +42 -0
- package/core/workspace-app/tests/unit/video-edit.test.js +417 -0
- package/core/workspace-app/tests/unit/video-transcript.test.js +237 -0
- package/core/workspace-app/tests/unit/waiting.test.js +48 -0
- package/core/workspace-app/tests/unit/wordpress-odoo-builders.test.js +38 -0
- package/core/workspace-app/tests/unit/workspace-bin.test.js +48 -0
- package/core/workspace-app/tests/unit/workspace-card-tools.test.js +30 -0
- package/core/workspace-app/tests/unit/workspace-delete.test.js +77 -0
- package/core/workspace-app/tests/unit/workspace-types.test.js +68 -0
- package/core/workspace-app/tests/unit/worktree-clone.test.js +250 -0
- package/{workspace-types.js → core/workspace-app/workspace-types.js} +2 -2
- package/{workspaces.js → core/workspace-app/workspaces.js} +1 -5
- package/package.json +38 -36
- package/actions/graphs.js +0 -107
- package/actions/obsidian.js +0 -59
- package/graphs.js +0 -104
- package/obsidian.js +0 -405
- /package/{WORKSPACES.md → core/workspace-app/WORKSPACES.md} +0 -0
- /package/{actions → core/workspace-app/actions}/ai-items.js +0 -0
- /package/{actions → core/workspace-app/actions}/audio.js +0 -0
- /package/{actions → core/workspace-app/actions}/build-order.js +0 -0
- /package/{actions → core/workspace-app/actions}/checks.js +0 -0
- /package/{actions → core/workspace-app/actions}/claude-session.js +0 -0
- /package/{actions → core/workspace-app/actions}/commands-center.js +0 -0
- /package/{actions → core/workspace-app/actions}/composer.js +0 -0
- /package/{actions → core/workspace-app/actions}/ddev-addons.js +0 -0
- /package/{actions → core/workspace-app/actions}/ddev-mail.js +0 -0
- /package/{actions → core/workspace-app/actions}/folders.js +0 -0
- /package/{actions → core/workspace-app/actions}/images-svg.js +0 -0
- /package/{actions → core/workspace-app/actions}/images.js +0 -0
- /package/{actions → core/workspace-app/actions}/navigation.js +0 -0
- /package/{actions → core/workspace-app/actions}/node.js +0 -0
- /package/{actions → core/workspace-app/actions}/notes.js +0 -0
- /package/{actions → core/workspace-app/actions}/plugins.js +0 -0
- /package/{actions → core/workspace-app/actions}/project-make.js +0 -0
- /package/{actions → core/workspace-app/actions}/row-actions.js +0 -0
- /package/{actions → core/workspace-app/actions}/screens.js +0 -0
- /package/{actions → core/workspace-app/actions}/video-edit.js +0 -0
- /package/{ai-inventory.js → core/workspace-app/ai-inventory.js} +0 -0
- /package/{ai-items.js → core/workspace-app/ai-items.js} +0 -0
- /package/{assistant-cast.js → core/workspace-app/assistant-cast.js} +0 -0
- /package/{assistant-suggestions.js → core/workspace-app/assistant-suggestions.js} +0 -0
- /package/{audio-voice.js → core/workspace-app/audio-voice.js} +0 -0
- /package/{auth-google.js → core/workspace-app/auth-google.js} +0 -0
- /package/{build-ai.js → core/workspace-app/build-ai.js} +0 -0
- /package/{build-order-page.js → core/workspace-app/build-order-page.js} +0 -0
- /package/{build-order.js → core/workspace-app/build-order.js} +0 -0
- /package/{builder-args.js → core/workspace-app/builder-args.js} +0 -0
- /package/{changelog.js → core/workspace-app/changelog.js} +0 -0
- /package/{chat-threads.js → core/workspace-app/chat-threads.js} +0 -0
- /package/{checks.js → core/workspace-app/checks.js} +0 -0
- /package/{claude-args.js → core/workspace-app/claude-args.js} +0 -0
- /package/{claude-sessions.js → core/workspace-app/claude-sessions.js} +0 -0
- /package/{command-author.js → core/workspace-app/command-author.js} +0 -0
- /package/{command-block.js → core/workspace-app/command-block.js} +0 -0
- /package/{commands → core/workspace-app/commands}/defaults.yml +0 -0
- /package/{commands-page.js → core/workspace-app/commands-page.js} +0 -0
- /package/{commands.js → core/workspace-app/commands.js} +0 -0
- /package/{cucumber.js → core/workspace-app/cucumber.js} +0 -0
- /package/{ddev-addons-page.js → core/workspace-app/ddev-addons-page.js} +0 -0
- /package/{ddev-addons.js → core/workspace-app/ddev-addons.js} +0 -0
- /package/{ddev-custom-commands.js → core/workspace-app/ddev-custom-commands.js} +0 -0
- /package/{ddev-domains.js → core/workspace-app/ddev-domains.js} +0 -0
- /package/{ddev-import.js → core/workspace-app/ddev-import.js} +0 -0
- /package/{ddev-mail-page.js → core/workspace-app/ddev-mail-page.js} +0 -0
- /package/{ddev-mail.js → core/workspace-app/ddev-mail.js} +0 -0
- /package/{ddev-options.js → core/workspace-app/ddev-options.js} +0 -0
- /package/{ddev-snapshots.js → core/workspace-app/ddev-snapshots.js} +0 -0
- /package/{ddev.js → core/workspace-app/ddev.js} +0 -0
- /package/{docs → core/workspace-app/docs}/DEVELOPER-GUIDE.md +0 -0
- /package/{docs → core/workspace-app/docs}/README.md +0 -0
- /package/{docs → core/workspace-app/docs}/REFERENCE.md +0 -0
- /package/{docs → core/workspace-app/docs}/USER-GUIDE.md +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-board.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-coffee.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-colours.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-icons.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-moves.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-pick-cookieman.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-settings-voices.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/assistant/avatar-status.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/create-card/create-card.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/create-card/start-ai.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-address.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-worktree-off.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-clone-worktree-on.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-ddev-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-domains.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-home.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-ide-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-remove-refusal.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-rows-worktree.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-screens.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-settings.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/guide-workspace-page.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/card-settings.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/drag-reorder.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/home/edit-card.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/claude-code-image.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/edit-with-ai.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/gallery.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/generate-description.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/generate-plan.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/providers.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/svg-form.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/svg-result.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/images/upload.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/2-form.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/8-ddev-options.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/new-folder/files-folder.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/projects/ddev-custom-commands.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/projects/state-chip-stop.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dashboard-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dashboard-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dev-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/dev-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/docs-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/docs-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/ai.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/code.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/docs.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/services.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/icons/sites.svg +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-report-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-report-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-scenarios.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/test-steps.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/videos-dark.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/readme/videos-light.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/screens-menu.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/screens-new.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/auth-google-lists.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-1-row.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-2-confirm.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-3-type-name.png +0 -0
- /package/{docs → core/workspace-app/docs}/screenshots/settings/delete-4-type-yes.png +0 -0
- /package/{event-log.js → core/workspace-app/event-log.js} +0 -0
- /package/{files-browser.js → core/workspace-app/files-browser.js} +0 -0
- /package/{folders.js → core/workspace-app/folders.js} +0 -0
- /package/{format.js → core/workspace-app/format.js} +0 -0
- /package/{github-auth.js → core/workspace-app/github-auth.js} +0 -0
- /package/{html.js → core/workspace-app/html.js} +0 -0
- /package/{icons.js → core/workspace-app/icons.js} +0 -0
- /package/{images-ai.js → core/workspace-app/images-ai.js} +0 -0
- /package/{images-create.js → core/workspace-app/images-create.js} +0 -0
- /package/{images-page.js → core/workspace-app/images-page.js} +0 -0
- /package/{images-records.js → core/workspace-app/images-records.js} +0 -0
- /package/{images-render.js → core/workspace-app/images-render.js} +0 -0
- /package/{images-svg-core.js → core/workspace-app/images-svg-core.js} +0 -0
- /package/{images-svg-sanitize.js → core/workspace-app/images-svg-sanitize.js} +0 -0
- /package/{images-svg.js → core/workspace-app/images-svg.js} +0 -0
- /package/{images.js → core/workspace-app/images.js} +0 -0
- /package/{jobs.js → core/workspace-app/jobs.js} +0 -0
- /package/{linger.js → core/workspace-app/linger.js} +0 -0
- /package/{lists.js → core/workspace-app/lists.js} +0 -0
- /package/{media-info.js → core/workspace-app/media-info.js} +0 -0
- /package/{navigation-page.js → core/workspace-app/navigation-page.js} +0 -0
- /package/{navigation.js → core/workspace-app/navigation.js} +0 -0
- /package/{notes.js → core/workspace-app/notes.js} +0 -0
- /package/{palette-index.js → core/workspace-app/palette-index.js} +0 -0
- /package/{playwright.config.js → core/workspace-app/playwright.config.js} +0 -0
- /package/{plugin-install.js → core/workspace-app/plugin-install.js} +0 -0
- /package/{plugin-manifest.js → core/workspace-app/plugin-manifest.js} +0 -0
- /package/{plugin-settings.js → core/workspace-app/plugin-settings.js} +0 -0
- /package/{plugins → core/workspace-app/plugins}/workspace-notes/index.js +0 -0
- /package/{project-make.js → core/workspace-app/project-make.js} +0 -0
- /package/{project-name.js → core/workspace-app/project-name.js} +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar-moves.js +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar-ui.js +0 -0
- /package/{public → core/workspace-app/public}/assistant-avatar.js +0 -0
- /package/{public → core/workspace-app/public}/avatar/druplicon.vrm +0 -0
- /package/{public → core/workspace-app/public}/css/base.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/ai-assistant.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/assistant-avatar.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/assistant-views.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/build-order.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/clone-as-a-git-worktree.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/command-palette.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/commands-center.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/confirm-dialog.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/create-card.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/ddev-menu.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/deep-chat.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/density.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/floating-assistant-workspace-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/folders.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/full-height-left-assistant-sidebar-all-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/full-height-right-actions-rail-pages-that-have-actions.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/grid-and-list.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/help-page.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/hero.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/images.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/layout-rhythm-and-spacing-polish.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/mic-on-any-field-that-wants-typing.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/modal-fit.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/page-width.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/plugins-page.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/project-cards.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/project-rows.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/reordering-the-workspace-cards.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/responsive-home-and-the-workspace-pages.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/running-commands-as-toasts.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/settings-editor-core-config-yml.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/short-results-as-a-toast-at-the-top.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/sound-player.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/suggest-agents-skills-commands.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/tab-modal.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/terminals.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/test-report-media-one-file-per-row-paged.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/top-toolbar-logo-breadcrumb.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/video-edit.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/web-ide-open-with.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/working-indicators.css +0 -0
- /package/{public → core/workspace-app/public}/css/components/workspace-cards.css +0 -0
- /package/{public → core/workspace-app/public}/favicon.ico +0 -0
- /package/{public → core/workspace-app/public}/favicon.png +0 -0
- /package/{public → core/workspace-app/public}/htmx.min.js +0 -0
- /package/{public → core/workspace-app/public}/logo.png +0 -0
- /package/{public → core/workspace-app/public}/media-player.js +0 -0
- /package/{public → core/workspace-app/public}/mic.js +0 -0
- /package/{public → core/workspace-app/public}/narration.js +0 -0
- /package/{public → core/workspace-app/public}/palette.js +0 -0
- /package/{public → core/workspace-app/public}/sortable.js +0 -0
- /package/{public → core/workspace-app/public}/suggest.js +0 -0
- /package/{public → core/workspace-app/public}/terminal.js +0 -0
- /package/{public → core/workspace-app/public}/themes/default/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/ember/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/press/theme.css +0 -0
- /package/{public → core/workspace-app/public}/themes/slate/theme.css +0 -0
- /package/{public → core/workspace-app/public}/touch-icon.png +0 -0
- /package/{public → core/workspace-app/public}/ui.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ace.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ext-language_tools.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/ext-searchbox.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-css.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-html.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-javascript.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-markdown.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-sh.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/mode-yaml.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/theme-textmate.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/theme-tomorrow_night.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/ace/worker-yaml.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/deep-chat.LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/deep-chat.bundle.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-latin-400-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/dm-serif-text-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-400-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-600-italic.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/figtree-latin-600-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/jetbrains-mono-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/ubuntu-mono-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/fonts/ubuntu-mono-latin-wght-normal.woff2 +0 -0
- /package/{public → core/workspace-app/public}/vendor/tabler-LICENSE.txt +0 -0
- /package/{public → core/workspace-app/public}/vendor/tabler-sprite.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/loaders/GLTFLoader.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/utils/BufferGeometryUtils.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/addons/utils/SkeletonUtils.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/three.core.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three/three.module.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/three-vrm/LICENSE +0 -0
- /package/{public → core/workspace-app/public}/vendor/three-vrm/three-vrm.module.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit-icons.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit.min.css +0 -0
- /package/{public → core/workspace-app/public}/vendor/uikit.min.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/bookmark-outlined.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/headset.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/menu.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/pause.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/play.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/share.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/sound-off.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/sound-on.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/webship-icons/ui/stop.svg +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-fit.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-unicode11.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/addon-web-links.js +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/xterm.css +0 -0
- /package/{public → core/workspace-app/public}/vendor/xterm/xterm.js +0 -0
- /package/{rag.js → core/workspace-app/rag.js} +0 -0
- /package/{reader.js → core/workspace-app/reader.js} +0 -0
- /package/{repo-blobs.js → core/workspace-app/repo-blobs.js} +0 -0
- /package/{report-pdf.js → core/workspace-app/report-pdf.js} +0 -0
- /package/{screenrc → core/workspace-app/screenrc} +0 -0
- /package/{screens.js → core/workspace-app/screens.js} +0 -0
- /package/{scripts → core/workspace-app/scripts}/code-server-start.sh +0 -0
- /package/{scripts → core/workspace-app/scripts}/images-claude-finish.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-host.sh +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-runner.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/screen-then.js +0 -0
- /package/{scripts → core/workspace-app/scripts}/update.sh +0 -0
- /package/{settings-file.js → core/workspace-app/settings-file.js} +0 -0
- /package/{speech.js → core/workspace-app/speech.js} +0 -0
- /package/{tab-modal.js → core/workspace-app/tab-modal.js} +0 -0
- /package/{test-reports.js → core/workspace-app/test-reports.js} +0 -0
- /package/{themes.js → core/workspace-app/themes.js} +0 -0
- /package/{transcripts.js → core/workspace-app/transcripts.js} +0 -0
- /package/{urls.js → core/workspace-app/urls.js} +0 -0
- /package/{validate.js → core/workspace-app/validate.js} +0 -0
- /package/{version-check.js → core/workspace-app/version-check.js} +0 -0
- /package/{video-edit.js → core/workspace-app/video-edit.js} +0 -0
- /package/{waiting.js → core/workspace-app/waiting.js} +0 -0
- /package/{workspace-card-tools.js → core/workspace-app/workspace-card-tools.js} +0 -0
- /package/{workspace-delete.js → core/workspace-app/workspace-delete.js} +0 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
################################################################################
|
|
4
|
+
## Extra hostnames for a project — the same site at another address.
|
|
5
|
+
################################################################################
|
|
6
|
+
## A DDEV project answers at `<name>.<project_tld>` because the NAME decides the
|
|
7
|
+
## address, and the workspace hands out a second, hierarchical one
|
|
8
|
+
## (`<project>.<workspace>.workspace.ddev.site`) through its own nginx tier. What
|
|
9
|
+
## neither gives you is a THIRD shape people keep asking for: the same project
|
|
10
|
+
## name in two workspaces, told apart in one flat hostname —
|
|
11
|
+
## `test3-dev.ddev.site` and `test3-test.ddev.site`.
|
|
12
|
+
##
|
|
13
|
+
## That is DDEV's `additional_hostnames`, and it is deliberately what this uses
|
|
14
|
+
## rather than renaming the project:
|
|
15
|
+
##
|
|
16
|
+
## * ADDING a hostname is reversible and costs nothing. RENAMING kills the old
|
|
17
|
+
## URL, recreates the containers and volumes under the new name, and leaves
|
|
18
|
+
## the DDEV project name no longer matching the folder — which is precisely
|
|
19
|
+
## what makes a git worktree collide with its source (fun-clone-project.sh).
|
|
20
|
+
## * Several addresses can coexist. A rename gives you exactly one, and takes
|
|
21
|
+
## one away.
|
|
22
|
+
## * Every link already printed, bookmarked or written in a doc keeps working.
|
|
23
|
+
##
|
|
24
|
+
## Written through `ddev config --additional-hostnames=`, never by editing the
|
|
25
|
+
## YAML: DDEV owns that file, validates the names and rewrites the router
|
|
26
|
+
## configuration. The list is REPLACED by that flag, so anything here that adds
|
|
27
|
+
## one reads the current list first and writes it back whole — an add that
|
|
28
|
+
## silently dropped the other hostnames would be worse than no add at all.
|
|
29
|
+
##
|
|
30
|
+
## A change only reaches the router on the next start, so these functions say so
|
|
31
|
+
## and offer to do it rather than leaving a hostname that resolves to nothing.
|
|
32
|
+
################################################################################
|
|
33
|
+
|
|
34
|
+
# The additional_hostnames a project currently declares, one per line.
|
|
35
|
+
# Read from the project's own config.yaml, which is the file the flag writes, so
|
|
36
|
+
# what is read and what is written cannot disagree.
|
|
37
|
+
function ddev_hostnames_list() {
|
|
38
|
+
local dir="${1:-}" cfg
|
|
39
|
+
cfg="${dir}/.ddev/config.yaml"
|
|
40
|
+
[ -f "${cfg}" ] || return 0
|
|
41
|
+
# The block is `additional_hostnames:` followed by `- name` lines, or an inline
|
|
42
|
+
# `[a, b]`. Both shapes are legal YAML and DDEV writes the first.
|
|
43
|
+
python3 - "${cfg}" <<'PY' 2>/dev/null
|
|
44
|
+
import sys, re
|
|
45
|
+
try:
|
|
46
|
+
lines = open(sys.argv[1], encoding='utf-8').read().split('\n')
|
|
47
|
+
except Exception:
|
|
48
|
+
sys.exit(0)
|
|
49
|
+
out, inblock = [], False
|
|
50
|
+
for ln in lines:
|
|
51
|
+
if re.match(r'^additional_hostnames:', ln):
|
|
52
|
+
rest = ln.split(':', 1)[1].strip()
|
|
53
|
+
if rest.startswith('['):
|
|
54
|
+
out += [x.strip().strip('"\'') for x in rest.strip('[]').split(',') if x.strip()]
|
|
55
|
+
else:
|
|
56
|
+
inblock = True
|
|
57
|
+
continue
|
|
58
|
+
if inblock:
|
|
59
|
+
m = re.match(r'^\s+-\s*(.+?)\s*$', ln)
|
|
60
|
+
if m:
|
|
61
|
+
out.append(m.group(1).strip().strip('"\''))
|
|
62
|
+
continue
|
|
63
|
+
if ln.strip() == '' or ln.startswith(' '):
|
|
64
|
+
continue
|
|
65
|
+
inblock = False
|
|
66
|
+
for h in out:
|
|
67
|
+
if h and h != '[]':
|
|
68
|
+
print(h)
|
|
69
|
+
PY
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
# The hostname a project would get from its workspace: <project>-<workspace>.
|
|
73
|
+
# One flat name that is unique across workspaces, which is the whole point —
|
|
74
|
+
# `test3` in dev and `test3` in test cannot both be `test3.ddev.site`.
|
|
75
|
+
function ddev_workspace_hostname() {
|
|
76
|
+
local project="${1:-}" workspace="${2:-}"
|
|
77
|
+
[ -n "${project}" ] && [ -n "${workspace}" ] || return 0
|
|
78
|
+
# DDEV allows letters, digits and hyphens in a hostname; a workspace key can
|
|
79
|
+
# carry a hyphen already (site-templates), which is fine, and nothing else.
|
|
80
|
+
echo "${project}-${workspace}" | tr -c 'a-zA-Z0-9-\n' '-'
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
# Is this a hostname DDEV will accept? Refused here rather than after a failed
|
|
84
|
+
# `ddev config`, because the message DDEV gives is about its whole config file.
|
|
85
|
+
function ddev_hostname_valid() {
|
|
86
|
+
local h="${1:-}"
|
|
87
|
+
[ -n "${h}" ] || return 1
|
|
88
|
+
# A label, not an FQDN: additional_hostnames gets project_tld appended. A dot
|
|
89
|
+
# here would silently produce name.example.com.ddev.site.
|
|
90
|
+
echo "${h}" | grep -qE '^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$'
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# Add one or more hostnames, keeping the ones already there.
|
|
94
|
+
function ddev_hostnames_add() {
|
|
95
|
+
local dir="${1}" ; shift
|
|
96
|
+
local cfg="${dir}/.ddev/config.yaml" tld existing all h added=0
|
|
97
|
+
if [ ! -f "${cfg}" ] ; then
|
|
98
|
+
echo "Not a DDEV project: ${dir}" ; return 1 ;
|
|
99
|
+
fi
|
|
100
|
+
existing="$(ddev_hostnames_list "${dir}")"
|
|
101
|
+
all="${existing}"
|
|
102
|
+
for h in "$@" ; do
|
|
103
|
+
[ -n "${h}" ] || continue
|
|
104
|
+
if ! ddev_hostname_valid "${h}" ; then
|
|
105
|
+
echo " '${h}' is not a hostname label — letters, digits and hyphens only, and no dots" ;
|
|
106
|
+
echo " (the project's TLD is appended, so a dot here would give name.example.com.<tld>)." ;
|
|
107
|
+
return 1 ;
|
|
108
|
+
fi
|
|
109
|
+
if echo "${existing}" | grep -qx "${h}" ; then
|
|
110
|
+
echo " ${h} is already there." ; continue ;
|
|
111
|
+
fi
|
|
112
|
+
# Two projects claiming one hostname is a router conflict, and it is invisible
|
|
113
|
+
# one project at a time: whichever started last wins, and the other simply
|
|
114
|
+
# stops answering at an address that used to work. Checked across the whole
|
|
115
|
+
# tree, not just this workspace, because the router is one thing for all of
|
|
116
|
+
# them — and against DDEV's project NAMES too, since the canonical hostname
|
|
117
|
+
# comes from the name and would be shadowed just the same.
|
|
118
|
+
local owner
|
|
119
|
+
owner="$(ddev_hostname_owner "${h}" "${dir}")"
|
|
120
|
+
if [ -n "${owner}" ] ; then
|
|
121
|
+
echo " '${h}' is already taken by ${owner}." ;
|
|
122
|
+
echo " Two projects on one hostname is a router conflict: the last one to" ;
|
|
123
|
+
echo " start wins and the other quietly stops answering. Pick another." ;
|
|
124
|
+
return 1 ;
|
|
125
|
+
fi
|
|
126
|
+
all="$(printf '%s\n%s' "${all}" "${h}")"
|
|
127
|
+
added=$((added+1)) ;
|
|
128
|
+
done
|
|
129
|
+
[ "${added}" -eq 0 ] && return 0 ;
|
|
130
|
+
|
|
131
|
+
# Written whole, because the flag replaces the list.
|
|
132
|
+
local joined
|
|
133
|
+
joined="$(echo "${all}" | grep -v '^$' | paste -sd, -)"
|
|
134
|
+
( cd "${dir}" && ddev config --additional-hostnames="${joined}" > /dev/null ) || {
|
|
135
|
+
echo " ddev refused the hostname list: ${joined}" ; return 1 ;
|
|
136
|
+
}
|
|
137
|
+
tld="$(ddev_project_tld)"
|
|
138
|
+
echo " Hostnames for this project are now:" ;
|
|
139
|
+
ddev_hostnames_list "${dir}" | sed "s|^| https://|; s|\$|.${tld}|" ;
|
|
140
|
+
echo "" ;
|
|
141
|
+
echo " A hostname reaches the router only on the next start:" ;
|
|
142
|
+
echo " cd ${dir} && ddev start" ;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
# Remove one hostname, leaving the rest.
|
|
146
|
+
function ddev_hostnames_remove() {
|
|
147
|
+
local dir="${1}" h="${2}" cfg="${dir}/.ddev/config.yaml" kept
|
|
148
|
+
[ -f "${cfg}" ] || { echo "Not a DDEV project: ${dir}" ; return 1 ; }
|
|
149
|
+
if ! ddev_hostnames_list "${dir}" | grep -qx "${h}" ; then
|
|
150
|
+
echo " ${h} is not one of this project's additional hostnames." ; return 1 ;
|
|
151
|
+
fi
|
|
152
|
+
kept="$(ddev_hostnames_list "${dir}" | grep -vx "${h}" | paste -sd, -)"
|
|
153
|
+
( cd "${dir}" && ddev config --additional-hostnames="${kept}" > /dev/null ) || return 1 ;
|
|
154
|
+
echo " Removed ${h}. Remaining: ${kept:-none}" ;
|
|
155
|
+
echo " The router still holds the old route until the next start." ;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
# Which project, anywhere in the tree, already answers at this hostname label —
|
|
159
|
+
# whether as its DDEV name or as one of its additional hostnames. Empty when the
|
|
160
|
+
# label is free. `skip_dir` is the project asking, so it does not find itself.
|
|
161
|
+
function ddev_hostname_owner() {
|
|
162
|
+
local h="${1}" skip_dir="${2:-}" d p n
|
|
163
|
+
local skip_real
|
|
164
|
+
skip_real="$( (cd "${skip_dir}" 2>/dev/null && pwd -P) || echo "${skip_dir}")"
|
|
165
|
+
for d in "${WORKSPACE_ROOT}"/*/*/ ; do
|
|
166
|
+
[ -f "${d}/.ddev/config.yaml" ] || continue
|
|
167
|
+
[ "$( (cd "${d}" && pwd -P) )" == "${skip_real}" ] && continue
|
|
168
|
+
n="$(ddev_project_name "${d}" 2>/dev/null)"
|
|
169
|
+
p="$(basename "$(dirname "${d}")")/$(basename "${d}")"
|
|
170
|
+
if [ "${n}" == "${h}" ] ; then
|
|
171
|
+
echo "${p} (it is that project's own name)" ; return 0 ;
|
|
172
|
+
fi
|
|
173
|
+
if ddev_hostnames_list "${d}" | grep -qx "${h}" ; then
|
|
174
|
+
echo "${p} (an additional hostname there)" ; return 0 ;
|
|
175
|
+
fi
|
|
176
|
+
done
|
|
177
|
+
return 0
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
# The TLD every project hostname is under. Global unless the project overrides it.
|
|
181
|
+
function ddev_project_tld() {
|
|
182
|
+
local dir="${1:-}" tld=''
|
|
183
|
+
if [ -n "${dir}" ] && [ -f "${dir}/.ddev/config.yaml" ] ; then
|
|
184
|
+
tld="$(sed -n 's/^project_tld:[[:space:]]*"\{0,1\}\([^"#]*\)"\{0,1\}[[:space:]]*$/\1/p' "${dir}/.ddev/config.yaml" | head -1 | tr -d '[:space:]')"
|
|
185
|
+
fi
|
|
186
|
+
if [ -z "${tld}" ] ; then
|
|
187
|
+
tld="$(ddev config global 2>/dev/null | sed -n 's/^project-tld=//p' | head -1 | tr -d '[:space:]')"
|
|
188
|
+
fi
|
|
189
|
+
echo "${tld:-ddev.site}"
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
# Everything one project answers at, for a report or a confirmation.
|
|
193
|
+
function ddev_hostnames_report() {
|
|
194
|
+
local dir="${1}" project="${2:-}" workspace="${3:-}" tld name
|
|
195
|
+
tld="$(ddev_project_tld "${dir}")"
|
|
196
|
+
name="$(ddev_project_name "${dir}" 2>/dev/null)"
|
|
197
|
+
echo " canonical https://${name:-${project}}.${tld}" ;
|
|
198
|
+
[ -n "${workspace}" ] && echo " hierarchical https://${project}.${workspace}.$(workspace_hub_domain)" ;
|
|
199
|
+
local extra
|
|
200
|
+
extra="$(ddev_hostnames_list "${dir}")"
|
|
201
|
+
if [ -n "${extra}" ] ; then
|
|
202
|
+
echo " additional:" ;
|
|
203
|
+
echo "${extra}" | sed "s|^| https://|; s|\$|.${tld}|" ;
|
|
204
|
+
else
|
|
205
|
+
echo " additional none" ;
|
|
206
|
+
fi
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
# The hub domain the dashboard hands out, from settings.yml — one field, and the
|
|
210
|
+
# only place the hierarchical URLs come from.
|
|
211
|
+
function workspace_hub_domain() {
|
|
212
|
+
echo "${hub_domain:-workspace.ddev.site}"
|
|
213
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
## The Node.js every project this workspace builds runs on.
|
|
3
|
+
##
|
|
4
|
+
## 24, in line with Drupal core, whose package.json asks for "node": ">= 24.0".
|
|
5
|
+
## The major only: DDEV installs the latest 24.x when the container is built, so a
|
|
6
|
+
## security release arrives with the next build and nothing here changes.
|
|
7
|
+
##
|
|
8
|
+
## A builder that needs another declares site_nodejs_version, the way it declares
|
|
9
|
+
## site_php_version. Passed as --nodejs-version on EVERY `ddev config` that creates a
|
|
10
|
+
## project and on the one that follows a create-project: a project template ships its
|
|
11
|
+
## own .ddev/config.yaml, and an older release of one pins an older Node.
|
|
12
|
+
|
|
13
|
+
function ddev_nodejs_version() {
|
|
14
|
+
echo "${site_nodejs_version:-24}" ;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
## Keep Drupal CMS install telemetry off in every project this workspace builds.
|
|
3
|
+
##
|
|
4
|
+
## Drupal CMS reports anonymous install analytics. It skips GitLab CI, GitHub
|
|
5
|
+
## Actions and Tugboat by environment, but not a local DDEV site, so test builds
|
|
6
|
+
## here were counted as real installs. DRUPAL_CMS_TELEMETRY=0 in the web container
|
|
7
|
+
## turns it off before the installer runs.
|
|
8
|
+
##
|
|
9
|
+
## Written through `ddev config --web-environment-add`, never by editing the YAML,
|
|
10
|
+
## and called after EVERY `ddev config` that follows a create-project: a project
|
|
11
|
+
## template ships its own .ddev/config.yaml and can replace the list.
|
|
12
|
+
|
|
13
|
+
function ddev_telemetry_off() {
|
|
14
|
+
ddev config --web-environment-add=DRUPAL_CMS_TELEMETRY=0 > /dev/null ;
|
|
15
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# DDEV owns the database connection: it generates settings.php and
|
|
4
|
+
# settings.ddev.php (db host "db") for drupal-type projects itself. This
|
|
5
|
+
# function no longer writes any $databases block — it only makes sure the
|
|
6
|
+
# config sync directory is configured and stamps the build time.
|
|
7
|
+
function set_default_settings() {
|
|
8
|
+
echo "Ensure DDEV-managed settings plus the config sync directory.";
|
|
9
|
+
|
|
10
|
+
local settings_file="${WORKSPACE_ROOT}/${doc_name}/${PROJECT_NAME}/${distribution_webroot}/sites/default/settings.php" ;
|
|
11
|
+
|
|
12
|
+
# Create the config/sync folder.
|
|
13
|
+
mkdir -p ${WORKSPACE_ROOT}/${doc_name}/${PROJECT_NAME}/config/sync ;
|
|
14
|
+
|
|
15
|
+
if [ -f "${settings_file}" ]; then
|
|
16
|
+
# Fixed, not a setting: it has to match the config/sync created above.
|
|
17
|
+
if ! grep -q "config_sync_directory" "${settings_file}" ; then
|
|
18
|
+
# Defaulted here rather than asked for in the settings: ../config/sync is the Drupal
|
|
19
|
+
# convention and the folder created just above. Setting config_sync_directory in
|
|
20
|
+
# settings.yml still overrides it.
|
|
21
|
+
echo "\$settings['config_sync_directory'] = '${config_sync_directory:-../config/sync}';" >> "${settings_file}" ;
|
|
22
|
+
fi
|
|
23
|
+
build_time=$( date '+%Y-%m-%d %H-%M-%S' );
|
|
24
|
+
echo "// Built time: ${build_time}" >> "${settings_file}" ;
|
|
25
|
+
else
|
|
26
|
+
echo "settings.php not found yet — DDEV will generate it on start/install." ;
|
|
27
|
+
fi
|
|
28
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install Cucumber with Drush.
|
|
4
|
+
function install_cucumber_with_drush() {
|
|
5
|
+
echo "Install Cucumber with Drush.";
|
|
6
|
+
ddev drush site:install cucumber --yes --site-name="${doc_name} ${PROJECT_NAME}" --account-name="${account_name}" --account-pass="${account_pass}" --account-mail="${account_mail}" --db-url="mysql://db:db@db/db" ;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# Enable Cucumber extra components.
|
|
10
|
+
function enable_cucumber_extra_components() {
|
|
11
|
+
echo "Enable Cucumber extra components.";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# The default set of users `add_users` creates for Cucumber (--add-users).
|
|
15
|
+
function set_cucumber_users() {
|
|
16
|
+
users=(authenticated developer tester analyst coordinator product_owner administrator);
|
|
17
|
+
user_authenticated_name="Authenticated user";
|
|
18
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
19
|
+
user_authenticated_password="dD.123123ddd";
|
|
20
|
+
user_authenticated_role="_none_";
|
|
21
|
+
user_developer_name="Developer";
|
|
22
|
+
user_developer_mail="test.developer@webship.org";
|
|
23
|
+
user_developer_password="dD.123123ddd";
|
|
24
|
+
user_developer_role="developer";
|
|
25
|
+
user_tester_name="Tester";
|
|
26
|
+
user_tester_mail="test.tester@webship.org";
|
|
27
|
+
user_tester_password="dD.123123ddd";
|
|
28
|
+
user_tester_role="tester";
|
|
29
|
+
user_analyst_name="Analyst";
|
|
30
|
+
user_analyst_mail="test.analyst@webship.org";
|
|
31
|
+
user_analyst_password="dD.123123ddd";
|
|
32
|
+
user_analyst_role="analyst";
|
|
33
|
+
user_coordinator_name="Coordinator";
|
|
34
|
+
user_coordinator_mail="test.coordinator@webship.org";
|
|
35
|
+
user_coordinator_password="dD.123123ddd";
|
|
36
|
+
user_coordinator_role="coordinator";
|
|
37
|
+
user_product_owner_name="Product Owner";
|
|
38
|
+
user_product_owner_mail="test.product_owner@webship.org";
|
|
39
|
+
user_product_owner_password="dD.123123ddd";
|
|
40
|
+
user_product_owner_role="product_owner";
|
|
41
|
+
user_administrator_name="Administrator";
|
|
42
|
+
user_administrator_mail="test.administrator@webship.org";
|
|
43
|
+
user_administrator_password="dD.123123ddd";
|
|
44
|
+
user_administrator_role="administrator";
|
|
45
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install Drupal with Drush.
|
|
4
|
+
function install_drupal_with_drush() {
|
|
5
|
+
echo "Install Drupal with Drush.";
|
|
6
|
+
ddev drush site:install ${PROFILE[*]} --yes --site-name="${doc_name} ${PROJECT_NAME}" --account-name="${account_name}" --account-pass="${account_pass}" --account-mail="${account_mail}" --db-url="mysql://db:db@db/db" --locale="en" install_configure_form.enable_update_status_emails=NULL --debug -vvv ;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# Enable Drupal extra components.
|
|
10
|
+
function enable_drupal_extra_components() {
|
|
11
|
+
echo "Enable Drupal extra components.";
|
|
12
|
+
|
|
13
|
+
}
|
|
14
|
+
# The default set of users `add_users` creates for Drupal (--add-users).
|
|
15
|
+
function set_drupal_users() {
|
|
16
|
+
users=(authenticated administrator);
|
|
17
|
+
user_authenticated_name="Authenticated user";
|
|
18
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
19
|
+
user_authenticated_password="dD.123123ddd";
|
|
20
|
+
user_authenticated_role="_none_";
|
|
21
|
+
user_administrator_name="Administrator";
|
|
22
|
+
user_administrator_mail="test.administrator@webship.org";
|
|
23
|
+
user_administrator_password="dD.123123ddd";
|
|
24
|
+
user_administrator_role="administrator";
|
|
25
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install Drupal CMS with Drush.
|
|
4
|
+
#
|
|
5
|
+
# Drupal CMS ships the `drupal_cms_installer` profile, whose install tasks are
|
|
6
|
+
# ordinary forms, so they can be driven non-interactively. The site-template step
|
|
7
|
+
# (`installer_site_template_form`) settles on `drupal_cms_starter` by itself on a
|
|
8
|
+
# non-interactive install, which is what a plain Drupal CMS build wants.
|
|
9
|
+
#
|
|
10
|
+
# Choosing a different template is what the site-templates workspace is for: those
|
|
11
|
+
# builders require the template package and name it to the same form.
|
|
12
|
+
function install_drupal_cms_with_drush() {
|
|
13
|
+
echo "Install Drupal CMS with Drush.";
|
|
14
|
+
|
|
15
|
+
ddev drush site:install drupal_cms_installer --yes --site-name="${doc_name} ${PROJECT_NAME}" --account-name="${account_name}" --account-pass="${account_pass}" --account-mail="${account_mail}" --db-url="mysql://db:db@db/db" --locale="en" installer_site_name_form.site_name="${doc_name} ${PROJECT_NAME}" ;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
# Enable Drupal CMS extra components.
|
|
19
|
+
function enable_drupal_cms_extra_components() {
|
|
20
|
+
echo "Enable Drupal CMS extra components.";
|
|
21
|
+
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
# The default set of users `add_users` creates for Drupal CMS (--add-users).
|
|
25
|
+
function set_drupal_cms_users() {
|
|
26
|
+
users=(authenticated administrator);
|
|
27
|
+
user_authenticated_name="Authenticated user";
|
|
28
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
29
|
+
user_authenticated_password="dD.123123ddd";
|
|
30
|
+
user_authenticated_role="_none_";
|
|
31
|
+
user_administrator_name="Administrator";
|
|
32
|
+
user_administrator_mail="test.administrator@webship.org";
|
|
33
|
+
user_administrator_password="dD.123123ddd";
|
|
34
|
+
user_administrator_role="administrator";
|
|
35
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install Webship with Drush.
|
|
4
|
+
function install_webship_with_drush() {
|
|
5
|
+
echo "Install Webship with Drush.";
|
|
6
|
+
ddev drush site:install webship --yes --site-name="${doc_name} ${PROJECT_NAME}" --account-name="${account_name}" --account-pass="${account_pass}" --account-mail="${account_mail}" --db-url="mysql://db:db@db/db" ;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# Enable Webship extra components.
|
|
10
|
+
function enable_webship_extra_components() {
|
|
11
|
+
echo "Enable Webship extra components.";
|
|
12
|
+
}
|
|
13
|
+
# The default set of users `add_users` creates for Webship (--add-users).
|
|
14
|
+
function set_webship_users() {
|
|
15
|
+
users=(authenticated content_editor administrator);
|
|
16
|
+
user_authenticated_name="Authenticated user";
|
|
17
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
18
|
+
user_authenticated_password="dD.123123ddd";
|
|
19
|
+
user_authenticated_role="_none_";
|
|
20
|
+
user_content_editor_name="Content editor";
|
|
21
|
+
user_content_editor_mail="test.content_editor@webship.org";
|
|
22
|
+
user_content_editor_password="dD.123123ddd";
|
|
23
|
+
user_content_editor_role="content_editor";
|
|
24
|
+
user_administrator_name="Webmaster";
|
|
25
|
+
user_administrator_mail="test.Webmaster@webship.org";
|
|
26
|
+
user_administrator_password="dD.123123ddd";
|
|
27
|
+
user_administrator_role="administrator";
|
|
28
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Install Webships with Drush.
|
|
4
|
+
function install_webships_with_drush() {
|
|
5
|
+
echo "Install Webships with Drush.";
|
|
6
|
+
ddev drush site:install webships --yes --site-name="${doc_name} ${PROJECT_NAME}" --account-name="${account_name}" --account-pass="${account_pass}" --account-mail="${account_mail}" --db-url="mysql://db:db@db/db" ;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
# Enable Webships extra components.
|
|
10
|
+
function enable_webships_extra_components() {
|
|
11
|
+
echo "Enable Webships extra components.";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# The default set of users `add_users` creates for Webships (--add-users).
|
|
15
|
+
function set_webships_users() {
|
|
16
|
+
users=(authenticated app_admin api_admin administrator);
|
|
17
|
+
user_authenticated_name="Authenticated user";
|
|
18
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
19
|
+
user_authenticated_password="dD.123123ddd";
|
|
20
|
+
user_authenticated_role="_none_";
|
|
21
|
+
user_app_admin_name="App Admin";
|
|
22
|
+
user_app_admin_mail="test.app_admin@webship.org";
|
|
23
|
+
user_app_admin_password="dD.123123ddd";
|
|
24
|
+
user_app_admin_role="api_admin";
|
|
25
|
+
user_api_admin_name="API Admin";
|
|
26
|
+
user_api_admin_mail="test.api_admin@webship.org";
|
|
27
|
+
user_api_admin_password="dD.123123ddd";
|
|
28
|
+
user_api_admin_role="api_admin";
|
|
29
|
+
user_administrator_name="Super Admin";
|
|
30
|
+
user_administrator_mail="test.administrator@webship.org";
|
|
31
|
+
user_administrator_password="dD.123123ddd";
|
|
32
|
+
user_administrator_role="administrator";
|
|
33
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# The default set of users `add_users` creates for the Website stack (--add-users).
|
|
4
|
+
# The site templates build on the Standard recipe roles.
|
|
5
|
+
function set_website_users() {
|
|
6
|
+
users=(authenticated content_editor administrator);
|
|
7
|
+
user_authenticated_name="Authenticated user";
|
|
8
|
+
user_authenticated_mail="test.authenticated@webship.org";
|
|
9
|
+
user_authenticated_password="dD.123123ddd";
|
|
10
|
+
user_authenticated_role="_none_";
|
|
11
|
+
user_content_editor_name="Content editor";
|
|
12
|
+
user_content_editor_mail="test.content_editor@webship.org";
|
|
13
|
+
user_content_editor_password="dD.123123ddd";
|
|
14
|
+
user_content_editor_role="content_editor";
|
|
15
|
+
user_administrator_name="Webmaster";
|
|
16
|
+
user_administrator_mail="test.webmaster@webship.org";
|
|
17
|
+
user_administrator_password="dD.123123ddd";
|
|
18
|
+
user_administrator_role="administrator";
|
|
19
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# Add Drush if it was not in the system.
|
|
4
|
+
function add_drush() {
|
|
5
|
+
echo "Add Drush if it was not in the system.";
|
|
6
|
+
if [ ! -d "${WORKSPACE_ROOT}/${doc_name}/${PROJECT_NAME}/vendor/drush/drush" ]; then
|
|
7
|
+
cd ${WORKSPACE_ROOT}/${doc_name}/${PROJECT_NAME};
|
|
8
|
+
# Which Drush a core can take is a fact about that core, so a builder may declare it
|
|
9
|
+
# and the rest keep what they have always had. Drupal 12 needs its own: core 12
|
|
10
|
+
# requires guzzle 8, every tagged Drush (through 13) requires guzzle ^7, and the
|
|
11
|
+
# resolver refuses the pair — which surfaces LATER as "drush is not available" at
|
|
12
|
+
# site:install, three steps from the line that caused it.
|
|
13
|
+
ddev composer require "drush/drush:${site_drush_version:-~11 || ~13}";
|
|
14
|
+
fi
|
|
15
|
+
|
|
16
|
+
# DDEV rewrites its shared command directory whenever ANY project on this machine starts, and `ddev drush`
|
|
17
|
+
# is missing from it for a moment. Wait for it, instead of failing the install on its very first line.
|
|
18
|
+
local attempt;
|
|
19
|
+
for attempt in 1 2 3 4 5 6 7 8 9 10 ; do
|
|
20
|
+
ddev drush --version > /dev/null 2>&1 && return 0 ;
|
|
21
|
+
echo "ddev drush is not available yet (attempt ${attempt} of 10), waiting." ;
|
|
22
|
+
sleep 6 ;
|
|
23
|
+
done
|
|
24
|
+
echo "ddev drush is still not available — the install cannot start." ;
|
|
25
|
+
return 1 ;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
# Cache Rebuilding ...
|
|
29
|
+
function drush_cr() {
|
|
30
|
+
echo "Cache Rebuilding ..."
|
|
31
|
+
ddev drush cache:rebuild ;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
# Set Aggrigation off and error level all
|
|
35
|
+
function drush_set_debug_on() {
|
|
36
|
+
echo "Set Aggrigation off and error_level on";
|
|
37
|
+
ddev drush config:set system.performance css.preprocess 0 --yes ;
|
|
38
|
+
ddev drush config:set system.performance js.preprocess 0 --yes ;
|
|
39
|
+
ddev drush config:set system.logging error_level all --yes ;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
# Set Aggrigation ON and error level OFF
|
|
43
|
+
function drush_set_debug_off() {
|
|
44
|
+
echo "Set Aggrigation ON and error_level OFF";
|
|
45
|
+
ddev drush config:set system.performance css.preprocess 1 --yes ;
|
|
46
|
+
ddev drush config:set system.performance js.preprocess 1 --yes ;
|
|
47
|
+
ddev drush config:set system.logging error_level 0 --yes ;
|
|
48
|
+
}
|