@stamhoofd/cli 2.122.1
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.md +32 -0
- package/README.md +365 -0
- package/bin/stam.js +19 -0
- package/dist/base-command.d.ts +22 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +23 -0
- package/dist/base-command.js.map +1 -0
- package/dist/command-flags.d.ts +8 -0
- package/dist/command-flags.d.ts.map +1 -0
- package/dist/command-flags.js +32 -0
- package/dist/command-flags.js.map +1 -0
- package/dist/commands/build.d.ts +12 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +16 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/check/all.d.ts +12 -0
- package/dist/commands/check/all.d.ts.map +1 -0
- package/dist/commands/check/all.js +21 -0
- package/dist/commands/check/all.js.map +1 -0
- package/dist/commands/check/index.d.ts +8 -0
- package/dist/commands/check/index.d.ts.map +1 -0
- package/dist/commands/check/index.js +15 -0
- package/dist/commands/check/index.js.map +1 -0
- package/dist/commands/check/lint.d.ts +11 -0
- package/dist/commands/check/lint.d.ts.map +1 -0
- package/dist/commands/check/lint.js +16 -0
- package/dist/commands/check/lint.js.map +1 -0
- package/dist/commands/check/typecheck.d.ts +11 -0
- package/dist/commands/check/typecheck.d.ts.map +1 -0
- package/dist/commands/check/typecheck.js +16 -0
- package/dist/commands/check/typecheck.js.map +1 -0
- package/dist/commands/clean/index.d.ts +31 -0
- package/dist/commands/clean/index.d.ts.map +1 -0
- package/dist/commands/clean/index.js +131 -0
- package/dist/commands/clean/index.js.map +1 -0
- package/dist/commands/config/explain.d.ts +13 -0
- package/dist/commands/config/explain.d.ts.map +1 -0
- package/dist/commands/config/explain.js +26 -0
- package/dist/commands/config/explain.js.map +1 -0
- package/dist/commands/config/index.d.ts +8 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +15 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/print.d.ts +13 -0
- package/dist/commands/config/print.d.ts.map +1 -0
- package/dist/commands/config/print.js +19 -0
- package/dist/commands/config/print.js.map +1 -0
- package/dist/commands/db/backup/index.d.ts +13 -0
- package/dist/commands/db/backup/index.d.ts.map +1 -0
- package/dist/commands/db/backup/index.js +31 -0
- package/dist/commands/db/backup/index.js.map +1 -0
- package/dist/commands/db/backup/list.d.ts +13 -0
- package/dist/commands/db/backup/list.d.ts.map +1 -0
- package/dist/commands/db/backup/list.js +38 -0
- package/dist/commands/db/backup/list.js.map +1 -0
- package/dist/commands/db/backup/remove.d.ts +15 -0
- package/dist/commands/db/backup/remove.d.ts.map +1 -0
- package/dist/commands/db/backup/remove.js +24 -0
- package/dist/commands/db/backup/remove.js.map +1 -0
- package/dist/commands/db/backup/rename.d.ts +15 -0
- package/dist/commands/db/backup/rename.d.ts.map +1 -0
- package/dist/commands/db/backup/rename.js +24 -0
- package/dist/commands/db/backup/rename.js.map +1 -0
- package/dist/commands/db/copy.d.ts +16 -0
- package/dist/commands/db/copy.d.ts.map +1 -0
- package/dist/commands/db/copy.js +27 -0
- package/dist/commands/db/copy.js.map +1 -0
- package/dist/commands/db/index.d.ts +8 -0
- package/dist/commands/db/index.d.ts.map +1 -0
- package/dist/commands/db/index.js +20 -0
- package/dist/commands/db/index.js.map +1 -0
- package/dist/commands/db/migrate.d.ts +13 -0
- package/dist/commands/db/migrate.d.ts.map +1 -0
- package/dist/commands/db/migrate.js +16 -0
- package/dist/commands/db/migrate.js.map +1 -0
- package/dist/commands/db/move.d.ts +16 -0
- package/dist/commands/db/move.d.ts.map +1 -0
- package/dist/commands/db/move.js +28 -0
- package/dist/commands/db/move.js.map +1 -0
- package/dist/commands/db/remove.d.ts +15 -0
- package/dist/commands/db/remove.d.ts.map +1 -0
- package/dist/commands/db/remove.js +25 -0
- package/dist/commands/db/remove.js.map +1 -0
- package/dist/commands/db/restore.d.ts +13 -0
- package/dist/commands/db/restore.d.ts.map +1 -0
- package/dist/commands/db/restore.js +31 -0
- package/dist/commands/db/restore.js.map +1 -0
- package/dist/commands/db/shell.d.ts +13 -0
- package/dist/commands/db/shell.d.ts.map +1 -0
- package/dist/commands/db/shell.js +20 -0
- package/dist/commands/db/shell.js.map +1 -0
- package/dist/commands/dev/index.d.ts +19 -0
- package/dist/commands/dev/index.d.ts.map +1 -0
- package/dist/commands/dev/index.js +63 -0
- package/dist/commands/dev/index.js.map +1 -0
- package/dist/commands/services/down.d.ts +11 -0
- package/dist/commands/services/down.d.ts.map +1 -0
- package/dist/commands/services/down.js +17 -0
- package/dist/commands/services/down.js.map +1 -0
- package/dist/commands/services/index.d.ts +8 -0
- package/dist/commands/services/index.d.ts.map +1 -0
- package/dist/commands/services/index.js +15 -0
- package/dist/commands/services/index.js.map +1 -0
- package/dist/commands/services/logs.d.ts +11 -0
- package/dist/commands/services/logs.d.ts.map +1 -0
- package/dist/commands/services/logs.js +15 -0
- package/dist/commands/services/logs.js.map +1 -0
- package/dist/commands/services/restart.d.ts +11 -0
- package/dist/commands/services/restart.d.ts.map +1 -0
- package/dist/commands/services/restart.js +18 -0
- package/dist/commands/services/restart.js.map +1 -0
- package/dist/commands/services/status.d.ts +11 -0
- package/dist/commands/services/status.d.ts.map +1 -0
- package/dist/commands/services/status.js +16 -0
- package/dist/commands/services/status.js.map +1 -0
- package/dist/commands/services/stop.d.ts +2 -0
- package/dist/commands/services/stop.d.ts.map +1 -0
- package/dist/commands/services/stop.js +2 -0
- package/dist/commands/services/stop.js.map +1 -0
- package/dist/commands/services/up.d.ts +11 -0
- package/dist/commands/services/up.d.ts.map +1 -0
- package/dist/commands/services/up.js +16 -0
- package/dist/commands/services/up.js.map +1 -0
- package/dist/commands/setup/index.d.ts +22 -0
- package/dist/commands/setup/index.d.ts.map +1 -0
- package/dist/commands/setup/index.js +69 -0
- package/dist/commands/setup/index.js.map +1 -0
- package/dist/commands/sso/config.d.ts +16 -0
- package/dist/commands/sso/config.d.ts.map +1 -0
- package/dist/commands/sso/config.js +21 -0
- package/dist/commands/sso/config.js.map +1 -0
- package/dist/commands/sso/index.d.ts +8 -0
- package/dist/commands/sso/index.d.ts.map +1 -0
- package/dist/commands/sso/index.js +16 -0
- package/dist/commands/sso/index.js.map +1 -0
- package/dist/commands/sso/logs.d.ts +13 -0
- package/dist/commands/sso/logs.d.ts.map +1 -0
- package/dist/commands/sso/logs.js +17 -0
- package/dist/commands/sso/logs.js.map +1 -0
- package/dist/commands/sso/start.d.ts +17 -0
- package/dist/commands/sso/start.d.ts.map +1 -0
- package/dist/commands/sso/start.js +32 -0
- package/dist/commands/sso/start.js.map +1 -0
- package/dist/commands/sso/stop.d.ts +13 -0
- package/dist/commands/sso/stop.d.ts.map +1 -0
- package/dist/commands/sso/stop.js +18 -0
- package/dist/commands/sso/stop.js.map +1 -0
- package/dist/commands/status.d.ts +15 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +61 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/test/all.d.ts +12 -0
- package/dist/commands/test/all.d.ts.map +1 -0
- package/dist/commands/test/all.js +19 -0
- package/dist/commands/test/all.js.map +1 -0
- package/dist/commands/test/e2e.d.ts +16 -0
- package/dist/commands/test/e2e.d.ts.map +1 -0
- package/dist/commands/test/e2e.js +32 -0
- package/dist/commands/test/e2e.js.map +1 -0
- package/dist/commands/test/index.d.ts +8 -0
- package/dist/commands/test/index.d.ts.map +1 -0
- package/dist/commands/test/index.js +16 -0
- package/dist/commands/test/index.js.map +1 -0
- package/dist/commands/test/unit.d.ts +12 -0
- package/dist/commands/test/unit.d.ts.map +1 -0
- package/dist/commands/test/unit.js +17 -0
- package/dist/commands/test/unit.js.map +1 -0
- package/dist/config/build-config.d.ts +15 -0
- package/dist/config/build-config.d.ts.map +1 -0
- package/dist/config/build-config.js +8 -0
- package/dist/config/build-config.js.map +1 -0
- package/dist/config/caddy-config.d.ts +122 -0
- package/dist/config/caddy-config.d.ts.map +1 -0
- package/dist/config/caddy-config.js +127 -0
- package/dist/config/caddy-config.js.map +1 -0
- package/dist/config/development-config.d.ts +48 -0
- package/dist/config/development-config.d.ts.map +1 -0
- package/dist/config/development-config.js +230 -0
- package/dist/config/development-config.js.map +1 -0
- package/dist/config/internal-secrets.d.ts +13 -0
- package/dist/config/internal-secrets.d.ts.map +1 -0
- package/dist/config/internal-secrets.js +65 -0
- package/dist/config/internal-secrets.js.map +1 -0
- package/dist/config/shared-service-config.d.ts +60 -0
- package/dist/config/shared-service-config.d.ts.map +1 -0
- package/dist/config/shared-service-config.js +94 -0
- package/dist/config/shared-service-config.js.map +1 -0
- package/dist/config/shared-service-profile.d.ts +29 -0
- package/dist/config/shared-service-profile.d.ts.map +1 -0
- package/dist/config/shared-service-profile.js +56 -0
- package/dist/config/shared-service-profile.js.map +1 -0
- package/dist/context/create-context.d.ts +19 -0
- package/dist/context/create-context.d.ts.map +1 -0
- package/dist/context/create-context.js +26 -0
- package/dist/context/create-context.js.map +1 -0
- package/dist/context/instance.d.ts +12 -0
- package/dist/context/instance.d.ts.map +1 -0
- package/dist/context/instance.js +26 -0
- package/dist/context/instance.js.map +1 -0
- package/dist/context/port-allocation.d.ts +3 -0
- package/dist/context/port-allocation.d.ts.map +1 -0
- package/dist/context/port-allocation.js +77 -0
- package/dist/context/port-allocation.js.map +1 -0
- package/dist/context/ports.d.ts +14 -0
- package/dist/context/ports.d.ts.map +1 -0
- package/dist/context/ports.js +17 -0
- package/dist/context/ports.js.map +1 -0
- package/dist/context/project-path.d.ts +2 -0
- package/dist/context/project-path.d.ts.map +1 -0
- package/dist/context/project-path.js +7 -0
- package/dist/context/project-path.js.map +1 -0
- package/dist/context/workspace.d.ts +5 -0
- package/dist/context/workspace.d.ts.map +1 -0
- package/dist/context/workspace.js +47 -0
- package/dist/context/workspace.js.map +1 -0
- package/dist/help.d.ts +13 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +125 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/command-runner.d.ts +20 -0
- package/dist/runtime/command-runner.d.ts.map +1 -0
- package/dist/runtime/command-runner.js +75 -0
- package/dist/runtime/command-runner.js.map +1 -0
- package/dist/runtime/database-command-helpers.d.ts +16 -0
- package/dist/runtime/database-command-helpers.d.ts.map +1 -0
- package/dist/runtime/database-command-helpers.js +64 -0
- package/dist/runtime/database-command-helpers.js.map +1 -0
- package/dist/runtime/db-backup-helpers.d.ts +24 -0
- package/dist/runtime/db-backup-helpers.d.ts.map +1 -0
- package/dist/runtime/db-backup-helpers.js +145 -0
- package/dist/runtime/db-backup-helpers.js.map +1 -0
- package/dist/runtime/live-output.d.ts +31 -0
- package/dist/runtime/live-output.d.ts.map +1 -0
- package/dist/runtime/live-output.js +139 -0
- package/dist/runtime/live-output.js.map +1 -0
- package/dist/runtime/manifest-store.d.ts +66 -0
- package/dist/runtime/manifest-store.d.ts.map +1 -0
- package/dist/runtime/manifest-store.js +188 -0
- package/dist/runtime/manifest-store.js.map +1 -0
- package/dist/runtime/monorepo-runner.d.ts +20 -0
- package/dist/runtime/monorepo-runner.d.ts.map +1 -0
- package/dist/runtime/monorepo-runner.js +175 -0
- package/dist/runtime/monorepo-runner.js.map +1 -0
- package/dist/runtime/one-password.d.ts +7 -0
- package/dist/runtime/one-password.d.ts.map +1 -0
- package/dist/runtime/one-password.js +90 -0
- package/dist/runtime/one-password.js.map +1 -0
- package/dist/runtime/output-target.d.ts +13 -0
- package/dist/runtime/output-target.d.ts.map +1 -0
- package/dist/runtime/output-target.js +22 -0
- package/dist/runtime/output-target.js.map +1 -0
- package/dist/runtime/show-help.d.ts +3 -0
- package/dist/runtime/show-help.d.ts.map +1 -0
- package/dist/runtime/show-help.js +6 -0
- package/dist/runtime/show-help.js.map +1 -0
- package/dist/runtime/status.d.ts +10 -0
- package/dist/runtime/status.d.ts.map +1 -0
- package/dist/runtime/status.js +28 -0
- package/dist/runtime/status.js.map +1 -0
- package/dist/runtime/ux.d.ts +62 -0
- package/dist/runtime/ux.d.ts.map +1 -0
- package/dist/runtime/ux.js +255 -0
- package/dist/runtime/ux.js.map +1 -0
- package/dist/services/definitions/caddy-service.d.ts +31 -0
- package/dist/services/definitions/caddy-service.d.ts.map +1 -0
- package/dist/services/definitions/caddy-service.js +93 -0
- package/dist/services/definitions/caddy-service.js.map +1 -0
- package/dist/services/definitions/coredns-service.d.ts +20 -0
- package/dist/services/definitions/coredns-service.d.ts.map +1 -0
- package/dist/services/definitions/coredns-service.js +43 -0
- package/dist/services/definitions/coredns-service.js.map +1 -0
- package/dist/services/definitions/maildev-service.d.ts +14 -0
- package/dist/services/definitions/maildev-service.d.ts.map +1 -0
- package/dist/services/definitions/maildev-service.js +28 -0
- package/dist/services/definitions/maildev-service.js.map +1 -0
- package/dist/services/definitions/mysql-service.d.ts +19 -0
- package/dist/services/definitions/mysql-service.d.ts.map +1 -0
- package/dist/services/definitions/mysql-service.js +41 -0
- package/dist/services/definitions/mysql-service.js.map +1 -0
- package/dist/services/definitions/rustfs-service.d.ts +16 -0
- package/dist/services/definitions/rustfs-service.d.ts.map +1 -0
- package/dist/services/definitions/rustfs-service.js +36 -0
- package/dist/services/definitions/rustfs-service.js.map +1 -0
- package/dist/services/definitions/sso-service.d.ts +27 -0
- package/dist/services/definitions/sso-service.d.ts.map +1 -0
- package/dist/services/definitions/sso-service.js +41 -0
- package/dist/services/definitions/sso-service.js.map +1 -0
- package/dist/services/definitions/stripe-service.d.ts +26 -0
- package/dist/services/definitions/stripe-service.d.ts.map +1 -0
- package/dist/services/definitions/stripe-service.js +70 -0
- package/dist/services/definitions/stripe-service.js.map +1 -0
- package/dist/services/docker-service.d.ts +39 -0
- package/dist/services/docker-service.d.ts.map +1 -0
- package/dist/services/docker-service.js +98 -0
- package/dist/services/docker-service.js.map +1 -0
- package/dist/services/docker.d.ts +23 -0
- package/dist/services/docker.d.ts.map +1 -0
- package/dist/services/docker.js +86 -0
- package/dist/services/docker.js.map +1 -0
- package/dist/services/manager.d.ts +25 -0
- package/dist/services/manager.d.ts.map +1 -0
- package/dist/services/manager.js +238 -0
- package/dist/services/manager.js.map +1 -0
- package/dist/services/registry.d.ts +3 -0
- package/dist/services/registry.d.ts.map +1 -0
- package/dist/services/registry.js +13 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/service.d.ts +24 -0
- package/dist/services/service.d.ts.map +1 -0
- package/dist/services/service.js +2 -0
- package/dist/services/service.js.map +1 -0
- package/dist/services/shared-services.d.ts +17 -0
- package/dist/services/shared-services.d.ts.map +1 -0
- package/dist/services/shared-services.js +67 -0
- package/dist/services/shared-services.js.map +1 -0
- package/dist/services/sso-config.d.ts +14 -0
- package/dist/services/sso-config.d.ts.map +1 -0
- package/dist/services/sso-config.js +106 -0
- package/dist/services/sso-config.js.map +1 -0
- package/dist/services/stripe.d.ts +4 -0
- package/dist/services/stripe.d.ts.map +1 -0
- package/dist/services/stripe.js +8 -0
- package/dist/services/stripe.js.map +1 -0
- package/dist/workflows/setup-machine.d.ts +55 -0
- package/dist/workflows/setup-machine.d.ts.map +1 -0
- package/dist/workflows/setup-machine.js +529 -0
- package/dist/workflows/setup-machine.js.map +1 -0
- package/dist/workflows/setup-node.d.ts +14 -0
- package/dist/workflows/setup-node.d.ts.map +1 -0
- package/dist/workflows/setup-node.js +49 -0
- package/dist/workflows/setup-node.js.map +1 -0
- package/dist/workflows/setup-shell.d.ts +32 -0
- package/dist/workflows/setup-shell.d.ts.map +1 -0
- package/dist/workflows/setup-shell.js +104 -0
- package/dist/workflows/setup-shell.js.map +1 -0
- package/dist/workflows/start-dev.d.ts +13 -0
- package/dist/workflows/start-dev.d.ts.map +1 -0
- package/dist/workflows/start-dev.js +339 -0
- package/dist/workflows/start-dev.js.map +1 -0
- package/dist/workflows/start-services.d.ts +3 -0
- package/dist/workflows/start-services.d.ts.map +1 -0
- package/dist/workflows/start-services.js +6 -0
- package/dist/workflows/start-services.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-config.js","sourceRoot":"","sources":["../../src/config/development-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { SharedEnvironment } from '@stamhoofd/types/Environment';
|
|
2
|
+
import type { CliContext } from '../context/create-context.js';
|
|
3
|
+
import type { AppService } from './development-config.js';
|
|
4
|
+
/**
|
|
5
|
+
* Internal contributors mark their checkout with a `.internal-contributor` file at the
|
|
6
|
+
* repo root. When present (and `op` is authenticated) we enrich the development
|
|
7
|
+
* environment with the shared internal credentials stored in 1Password.
|
|
8
|
+
*
|
|
9
|
+
* External contributors never have the marker file, so this is a no-op for them and no
|
|
10
|
+
* 1Password calls are made.
|
|
11
|
+
*/
|
|
12
|
+
export declare function applyInternalSecrets(context: CliContext, service: AppService, env: SharedEnvironment): Promise<SharedEnvironment>;
|
|
13
|
+
//# sourceMappingURL=internal-secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-secrets.d.ts","sourceRoot":"","sources":["../../src/config/internal-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkCvI"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { read1PasswordCli } from '../runtime/one-password.js';
|
|
4
|
+
/**
|
|
5
|
+
* Internal contributors mark their checkout with a `.internal-contributor` file at the
|
|
6
|
+
* repo root. When present (and `op` is authenticated) we enrich the development
|
|
7
|
+
* environment with the shared internal credentials stored in 1Password.
|
|
8
|
+
*
|
|
9
|
+
* External contributors never have the marker file, so this is a no-op for them and no
|
|
10
|
+
* 1Password calls are made.
|
|
11
|
+
*/
|
|
12
|
+
export async function applyInternalSecrets(context, service, env) {
|
|
13
|
+
if (!await isInternalContributor(context.rootDir)) {
|
|
14
|
+
return env;
|
|
15
|
+
}
|
|
16
|
+
const cacheDir = path.join(context.generatedDir, 'cache', '1password');
|
|
17
|
+
const read = (key) => read1PasswordCli(key, { optional: true, cacheDir });
|
|
18
|
+
// The Mollie client id is the only secret the frontend needs.
|
|
19
|
+
if ('frontend' in service) {
|
|
20
|
+
return withSecrets(env, {
|
|
21
|
+
MOLLIE_CLIENT_ID: await read('op://Localhost/Mollie/MOLLIE_CLIENT_ID'),
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
// Only the API backend talks to these external integrations.
|
|
25
|
+
if (service.backend !== 'api') {
|
|
26
|
+
return env;
|
|
27
|
+
}
|
|
28
|
+
// Read serially: 1Password prompts for Touch ID per process, so concurrent reads
|
|
29
|
+
// would trigger multiple prompts. Serial reads keep it to a single authorization.
|
|
30
|
+
// STRIPE_SECRET_KEY is intentionally left to the CLI's existing resolution
|
|
31
|
+
// (stripe-service / the --stripe listener) and is never touched here.
|
|
32
|
+
return withSecrets(env, {
|
|
33
|
+
MOLLIE_CLIENT_ID: await read('op://Localhost/Mollie/MOLLIE_CLIENT_ID'),
|
|
34
|
+
MOLLIE_API_KEY: await read('op://Localhost/Mollie/MOLLIE_API_KEY'),
|
|
35
|
+
MOLLIE_SECRET: await read('op://Localhost/Mollie/MOLLIE_SECRET'),
|
|
36
|
+
MOLLIE_ORGANIZATION_TOKEN: await read('op://Localhost/Mollie/MOLLIE_ORGANIZATION_TOKEN'),
|
|
37
|
+
STRIPE_ACCOUNT_ID: await read('op://Localhost/Stripe/STRIPE_ACCOUNT_ID'),
|
|
38
|
+
UITPAS_API_CLIENT_ID: await read('op://Localhost/UiTPAS/client_id'),
|
|
39
|
+
UITPAS_API_CLIENT_SECRET: await read('op://Localhost/UiTPAS/client_secret'),
|
|
40
|
+
UITPAS_API_URL: await read('op://Localhost/UiTPAS/api_url'),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async function isInternalContributor(rootDir) {
|
|
44
|
+
try {
|
|
45
|
+
await fs.access(path.join(rootDir, '.internal-contributor'));
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Merge resolved secrets into the environment, skipping empty values so an optional
|
|
54
|
+
* 1Password miss never blanks out an existing default.
|
|
55
|
+
*/
|
|
56
|
+
function withSecrets(env, secrets) {
|
|
57
|
+
const overrides = {};
|
|
58
|
+
for (const [key, value] of Object.entries(secrets)) {
|
|
59
|
+
if (value) {
|
|
60
|
+
overrides[key] = value;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return { ...env, ...overrides };
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=internal-secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal-secrets.js","sourceRoot":"","sources":["../../src/config/internal-secrets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAAmB,EAAE,OAAmB,EAAE,GAAsB;IACvG,IAAI,CAAC,MAAM,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAElF,8DAA8D;IAC9D,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,WAAW,CAAC,GAAG,EAAE;YACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC,wCAAwC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;IAED,6DAA6D;IAC7D,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACf,CAAC;IAED,iFAAiF;IACjF,kFAAkF;IAClF,2EAA2E;IAC3E,sEAAsE;IACtE,OAAO,WAAW,CAAC,GAAG,EAAE;QACpB,gBAAgB,EAAE,MAAM,IAAI,CAAC,wCAAwC,CAAC;QACtE,cAAc,EAAE,MAAM,IAAI,CAAC,sCAAsC,CAAC;QAClE,aAAa,EAAE,MAAM,IAAI,CAAC,qCAAqC,CAAC;QAChE,yBAAyB,EAAE,MAAM,IAAI,CAAC,iDAAiD,CAAC;QACxF,iBAAiB,EAAE,MAAM,IAAI,CAAC,yCAAyC,CAAC;QACxE,oBAAoB,EAAE,MAAM,IAAI,CAAC,iCAAiC,CAAC;QACnE,wBAAwB,EAAE,MAAM,IAAI,CAAC,qCAAqC,CAAC;QAC3E,cAAc,EAAE,MAAM,IAAI,CAAC,+BAA+B,CAAC;KAC9D,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAAe;IAChD,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,GAAsB,EAAE,OAA+B;IACxE,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACR,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IACD,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,SAAS,EAAuB,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export declare const successSymbol = "\u2713";
|
|
2
|
+
export declare const localIpv4Host = "127.0.0.1";
|
|
3
|
+
export declare const localIpv6Host = "::1";
|
|
4
|
+
export declare const defaultDomain = "stamhoofd";
|
|
5
|
+
export declare const dockerHostGateway = "host.docker.internal";
|
|
6
|
+
export declare const mysqlContainer = "stamhoofd-mysql";
|
|
7
|
+
export declare const maildevContainer = "stamhoofd-maildev";
|
|
8
|
+
export declare const rustfsContainer = "stamhoofd-rustfs";
|
|
9
|
+
export declare const corednsContainer = "stamhoofd-coredns";
|
|
10
|
+
export declare const caddyContainer = "stamhoofd-caddy";
|
|
11
|
+
export declare const mysqlImage = "docker.io/library/mysql:8.4";
|
|
12
|
+
export declare const maildevImage = "docker.io/maildev/maildev:2.2.1";
|
|
13
|
+
export declare const rustfsImage = "docker.io/rustfs/rustfs:latest";
|
|
14
|
+
export declare const corednsImage = "docker.io/coredns/coredns:1.11.3";
|
|
15
|
+
export declare const caddyImage = "docker.io/library/caddy:2";
|
|
16
|
+
export declare const mysqlRootUser = "root";
|
|
17
|
+
export declare const mysqlRootPassword = "root";
|
|
18
|
+
export declare const maildevUsername = "username";
|
|
19
|
+
export declare const maildevPassword = "password";
|
|
20
|
+
export declare const localFilesAccessKey = "stamhoofd-local";
|
|
21
|
+
export declare const localFilesSecretKey = "stamhoofd-local-secret";
|
|
22
|
+
export declare const localPrimaryBucket = "stamhoofd-local";
|
|
23
|
+
export declare const defaultMysqlInnodbBufferPoolSize = "4G";
|
|
24
|
+
export declare const defaultInnodbBufferPoolInstances = "4";
|
|
25
|
+
export declare const defaultMysqlSortBufferSize = "2M";
|
|
26
|
+
/**
|
|
27
|
+
* Build the MySQL server arguments passed to the Docker container.
|
|
28
|
+
*
|
|
29
|
+
* The InnoDB buffer pool and sort buffer sizes can be tuned through the
|
|
30
|
+
* STAMHOOFD_MYSQL_INNODB_BUFFER_POOL_SIZE and STAMHOOFD_MYSQL_SORT_BUFFER_SIZE
|
|
31
|
+
* environment variables (e.g. "512M", "1G"), falling back to safe defaults.
|
|
32
|
+
*/
|
|
33
|
+
export declare function mysqlServerArgs(): string[];
|
|
34
|
+
export declare const mysqlInternalPort = 3306;
|
|
35
|
+
export declare const maildevInternalSmtpPort = 1025;
|
|
36
|
+
export declare const maildevInternalHttpPort = 1080;
|
|
37
|
+
export declare const rustfsInternalApiPort = 9000;
|
|
38
|
+
export declare const rustfsInternalConsolePort = 9001;
|
|
39
|
+
export declare const ssoInternalPort = 8080;
|
|
40
|
+
export declare const corednsPort = 53;
|
|
41
|
+
export declare const corednsUnprivilegedHostPort = 1053;
|
|
42
|
+
export declare const corednsPrivilegedHostPort = 53;
|
|
43
|
+
export declare const caddyHttpPort = 80;
|
|
44
|
+
export declare const caddyHttpsPort = 443;
|
|
45
|
+
export declare const caddyUnprivilegedHttpPort = 8080;
|
|
46
|
+
export declare const caddyUnprivilegedHttpsPort = 8443;
|
|
47
|
+
export declare const caddyAdminPort = 2019;
|
|
48
|
+
export declare const caddySetupAdminPort = 2021;
|
|
49
|
+
export declare const caddySetupHttpPort = 4080;
|
|
50
|
+
export declare const caddySetupHttpsPort = 4443;
|
|
51
|
+
export declare const mysqlDataVolume = "stamhoofd-mysql-data";
|
|
52
|
+
export declare const rustfsDataVolume = "stamhoofd-rustfs-data";
|
|
53
|
+
export declare const caddyConfigPath = "/etc/caddy/caddy.json";
|
|
54
|
+
export declare const caddyDataDirInContainer = "/data/caddy";
|
|
55
|
+
export declare function caddyDataDir(): string;
|
|
56
|
+
export declare function caddyRootCaPath(): string;
|
|
57
|
+
export declare function localhostPort(port: number): string;
|
|
58
|
+
export declare function localhostPortMapping(hostPort: number, containerPort: number): string;
|
|
59
|
+
export declare function localhostPortMappingDynamic(containerPort: number): string;
|
|
60
|
+
//# sourceMappingURL=shared-service-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-service-config.d.ts","sourceRoot":"","sources":["../../src/config/shared-service-config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,WAAM,CAAC;AAEjC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,aAAa,cAAc,CAAC;AACzC,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AAExD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAChD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AACpD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,eAAO,MAAM,UAAU,gCAAgC,CAAC;AACxD,eAAO,MAAM,YAAY,oCAAoC,CAAC;AAC9D,eAAO,MAAM,WAAW,mCAAmC,CAAC;AAC5D,eAAO,MAAM,YAAY,qCAAqC,CAAC;AAC/D,eAAO,MAAM,UAAU,8BAA8B,CAAC;AAEtD,eAAO,MAAM,aAAa,SAAS,CAAC;AACpC,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AACrD,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD,eAAO,MAAM,gCAAgC,OAAO,CAAC;AACrD,eAAO,MAAM,gCAAgC,MAAM,CAAC;AACpD,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAW1C;AAED,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAC9C,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AACxC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,eAAe,yBAAyB,CAAC;AACtD,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,eAAO,MAAM,eAAe,0BAA0B,CAAC;AACvD,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AAErD,wBAAgB,YAAY,IAAI,MAAM,CAWrC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
export const successSymbol = '✓';
|
|
4
|
+
export const localIpv4Host = '127.0.0.1';
|
|
5
|
+
export const localIpv6Host = '::1';
|
|
6
|
+
export const defaultDomain = 'stamhoofd';
|
|
7
|
+
export const dockerHostGateway = 'host.docker.internal';
|
|
8
|
+
export const mysqlContainer = 'stamhoofd-mysql';
|
|
9
|
+
export const maildevContainer = 'stamhoofd-maildev';
|
|
10
|
+
export const rustfsContainer = 'stamhoofd-rustfs';
|
|
11
|
+
export const corednsContainer = 'stamhoofd-coredns';
|
|
12
|
+
export const caddyContainer = 'stamhoofd-caddy';
|
|
13
|
+
export const mysqlImage = 'docker.io/library/mysql:8.4';
|
|
14
|
+
export const maildevImage = 'docker.io/maildev/maildev:2.2.1';
|
|
15
|
+
export const rustfsImage = 'docker.io/rustfs/rustfs:latest';
|
|
16
|
+
export const corednsImage = 'docker.io/coredns/coredns:1.11.3';
|
|
17
|
+
export const caddyImage = 'docker.io/library/caddy:2';
|
|
18
|
+
export const mysqlRootUser = 'root';
|
|
19
|
+
export const mysqlRootPassword = 'root';
|
|
20
|
+
export const maildevUsername = 'username';
|
|
21
|
+
export const maildevPassword = 'password';
|
|
22
|
+
export const localFilesAccessKey = 'stamhoofd-local';
|
|
23
|
+
export const localFilesSecretKey = 'stamhoofd-local-secret';
|
|
24
|
+
export const localPrimaryBucket = 'stamhoofd-local';
|
|
25
|
+
export const defaultMysqlInnodbBufferPoolSize = '4G';
|
|
26
|
+
export const defaultInnodbBufferPoolInstances = '4';
|
|
27
|
+
export const defaultMysqlSortBufferSize = '2M';
|
|
28
|
+
/**
|
|
29
|
+
* Build the MySQL server arguments passed to the Docker container.
|
|
30
|
+
*
|
|
31
|
+
* The InnoDB buffer pool and sort buffer sizes can be tuned through the
|
|
32
|
+
* STAMHOOFD_MYSQL_INNODB_BUFFER_POOL_SIZE and STAMHOOFD_MYSQL_SORT_BUFFER_SIZE
|
|
33
|
+
* environment variables (e.g. "512M", "1G"), falling back to safe defaults.
|
|
34
|
+
*/
|
|
35
|
+
export function mysqlServerArgs() {
|
|
36
|
+
const innodbBufferPoolSize = process.env.STAMHOOFD_MYSQL_INNODB_BUFFER_POOL_SIZE ?? defaultMysqlInnodbBufferPoolSize;
|
|
37
|
+
const bufferPoolInstances = process.env.STAMHOOFD_MYSQL_INNODB_BUFFER_POOL_INSTANCES ?? defaultInnodbBufferPoolInstances;
|
|
38
|
+
const sortBufferSize = process.env.STAMHOOFD_MYSQL_SORT_BUFFER_SIZE ?? defaultMysqlSortBufferSize;
|
|
39
|
+
return [
|
|
40
|
+
'--mysql-native-password=ON',
|
|
41
|
+
`--innodb-buffer-pool-size=${innodbBufferPoolSize}`,
|
|
42
|
+
`--innodb-buffer-pool-instances=${bufferPoolInstances}`,
|
|
43
|
+
`--sort-buffer-size=${sortBufferSize}`,
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
export const mysqlInternalPort = 3306;
|
|
47
|
+
export const maildevInternalSmtpPort = 1025;
|
|
48
|
+
export const maildevInternalHttpPort = 1080;
|
|
49
|
+
export const rustfsInternalApiPort = 9000;
|
|
50
|
+
export const rustfsInternalConsolePort = 9001;
|
|
51
|
+
export const ssoInternalPort = 8080;
|
|
52
|
+
export const corednsPort = 53;
|
|
53
|
+
export const corednsUnprivilegedHostPort = 1053;
|
|
54
|
+
export const corednsPrivilegedHostPort = 53;
|
|
55
|
+
export const caddyHttpPort = 80;
|
|
56
|
+
export const caddyHttpsPort = 443;
|
|
57
|
+
export const caddyUnprivilegedHttpPort = 8080;
|
|
58
|
+
export const caddyUnprivilegedHttpsPort = 8443;
|
|
59
|
+
export const caddyAdminPort = 2019;
|
|
60
|
+
export const caddySetupAdminPort = 2021;
|
|
61
|
+
export const caddySetupHttpPort = 4080;
|
|
62
|
+
export const caddySetupHttpsPort = 4443;
|
|
63
|
+
export const mysqlDataVolume = 'stamhoofd-mysql-data';
|
|
64
|
+
export const rustfsDataVolume = 'stamhoofd-rustfs-data';
|
|
65
|
+
export const caddyConfigPath = '/etc/caddy/caddy.json';
|
|
66
|
+
export const caddyDataDirInContainer = '/data/caddy';
|
|
67
|
+
export function caddyDataDir() {
|
|
68
|
+
// The Caddy Docker image sets XDG_DATA_HOME=/data, so it reads PKI data from
|
|
69
|
+
// /data/caddy (= caddyDataDirInContainer). We mount the host Caddy data dir
|
|
70
|
+
// there so the container shares the same CA as the local `caddy` binary.
|
|
71
|
+
// On macOS the local binary uses ~/Library/Application Support/Caddy;
|
|
72
|
+
// on Linux it follows XDG (~/.local/share/caddy).
|
|
73
|
+
if (process.platform === 'darwin') {
|
|
74
|
+
return path.join(os.homedir(), 'Library/Application Support/Caddy');
|
|
75
|
+
}
|
|
76
|
+
const dataHome = process.env.XDG_DATA_HOME ?? path.join(os.homedir(), '.local/share');
|
|
77
|
+
return path.join(dataHome, 'caddy');
|
|
78
|
+
}
|
|
79
|
+
export function caddyRootCaPath() {
|
|
80
|
+
return path.join(caddyDataDir(), 'pki/authorities/local/root.crt');
|
|
81
|
+
}
|
|
82
|
+
export function localhostPort(port) {
|
|
83
|
+
return `${localIpv4Host}:${port}`;
|
|
84
|
+
}
|
|
85
|
+
export function localhostPortMapping(hostPort, containerPort) {
|
|
86
|
+
if (process.env.PUBLIC_IP) {
|
|
87
|
+
return `0.0.0.0:${hostPort}:${containerPort}`;
|
|
88
|
+
}
|
|
89
|
+
return `${localIpv4Host}:${hostPort}:${containerPort}`;
|
|
90
|
+
}
|
|
91
|
+
export function localhostPortMappingDynamic(containerPort) {
|
|
92
|
+
return `${localIpv4Host}::${containerPort}`;
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=shared-service-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-service-config.js","sourceRoot":"","sources":["../../src/config/shared-service-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ContainerRuntime } from '../services/docker.js';
|
|
2
|
+
export declare enum SharedServiceCaddyRunMode {
|
|
3
|
+
HostNetwork = "host-network",
|
|
4
|
+
Bridge = "bridge"
|
|
5
|
+
}
|
|
6
|
+
export declare enum SharedServiceDnsSetupKind {
|
|
7
|
+
SystemdResolved = "systemd-resolved",
|
|
8
|
+
MacosResolver = "macos-resolver"
|
|
9
|
+
}
|
|
10
|
+
export type CaddyServiceProfile = {
|
|
11
|
+
caddyHttpHostPort: number;
|
|
12
|
+
caddyHttpsHostPort: number;
|
|
13
|
+
caddyHttpListenPort: number;
|
|
14
|
+
caddyHttpsListenPort: number;
|
|
15
|
+
caddyAdminListenHost: string;
|
|
16
|
+
caddyProxyHost: string;
|
|
17
|
+
caddyListenHost: string;
|
|
18
|
+
caddyRunMode: SharedServiceCaddyRunMode;
|
|
19
|
+
};
|
|
20
|
+
export type SharedServiceProfile = {
|
|
21
|
+
platform: NodeJS.Platform;
|
|
22
|
+
runtime: ContainerRuntime;
|
|
23
|
+
corednsHostPort: number;
|
|
24
|
+
needsPrivilegedRedirects: boolean;
|
|
25
|
+
dnsSetupKind: SharedServiceDnsSetupKind;
|
|
26
|
+
} & CaddyServiceProfile;
|
|
27
|
+
export declare function buildCaddyServiceProfile(platform?: NodeJS.Platform): CaddyServiceProfile;
|
|
28
|
+
export declare function buildSharedServiceProfile(runtime: ContainerRuntime, platform?: NodeJS.Platform): SharedServiceProfile;
|
|
29
|
+
//# sourceMappingURL=shared-service-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-service-profile.d.ts","sourceRoot":"","sources":["../../src/config/shared-service-profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,oBAAY,yBAAyB;IACjC,WAAW,iBAAiB;IAC5B,MAAM,WAAW;CACpB;AAED,oBAAY,yBAAyB;IACjC,eAAe,qBAAqB;IACpC,aAAa,mBAAmB;CACnC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,yBAAyB,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,wBAAwB,EAAE,OAAO,CAAC;IAClC,YAAY,EAAE,yBAAyB,CAAC;CAC3C,GAAG,mBAAmB,CAAC;AAExB,wBAAgB,wBAAwB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,mBAAmB,CAwB1G;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,oBAAoB,CAoBvI"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { caddyHttpPort, caddyHttpsPort, caddyUnprivilegedHttpPort, caddyUnprivilegedHttpsPort, corednsPrivilegedHostPort, corednsUnprivilegedHostPort, dockerHostGateway, localIpv4Host } from './shared-service-config.js';
|
|
2
|
+
export var SharedServiceCaddyRunMode;
|
|
3
|
+
(function (SharedServiceCaddyRunMode) {
|
|
4
|
+
SharedServiceCaddyRunMode["HostNetwork"] = "host-network";
|
|
5
|
+
SharedServiceCaddyRunMode["Bridge"] = "bridge";
|
|
6
|
+
})(SharedServiceCaddyRunMode || (SharedServiceCaddyRunMode = {}));
|
|
7
|
+
export var SharedServiceDnsSetupKind;
|
|
8
|
+
(function (SharedServiceDnsSetupKind) {
|
|
9
|
+
SharedServiceDnsSetupKind["SystemdResolved"] = "systemd-resolved";
|
|
10
|
+
SharedServiceDnsSetupKind["MacosResolver"] = "macos-resolver";
|
|
11
|
+
})(SharedServiceDnsSetupKind || (SharedServiceDnsSetupKind = {}));
|
|
12
|
+
export function buildCaddyServiceProfile(platform = process.platform) {
|
|
13
|
+
if (platform === 'darwin') {
|
|
14
|
+
return {
|
|
15
|
+
caddyHttpHostPort: caddyHttpPort,
|
|
16
|
+
caddyHttpsHostPort: caddyHttpsPort,
|
|
17
|
+
caddyHttpListenPort: caddyHttpPort,
|
|
18
|
+
caddyHttpsListenPort: caddyHttpsPort,
|
|
19
|
+
caddyAdminListenHost: '0.0.0.0',
|
|
20
|
+
caddyProxyHost: dockerHostGateway,
|
|
21
|
+
caddyListenHost: '0.0.0.0',
|
|
22
|
+
caddyRunMode: SharedServiceCaddyRunMode.Bridge,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
caddyHttpHostPort: caddyUnprivilegedHttpPort,
|
|
27
|
+
caddyHttpsHostPort: caddyUnprivilegedHttpsPort,
|
|
28
|
+
caddyHttpListenPort: caddyUnprivilegedHttpPort,
|
|
29
|
+
caddyHttpsListenPort: caddyUnprivilegedHttpsPort,
|
|
30
|
+
caddyAdminListenHost: localIpv4Host,
|
|
31
|
+
caddyProxyHost: localIpv4Host,
|
|
32
|
+
caddyListenHost: localIpv4Host,
|
|
33
|
+
caddyRunMode: SharedServiceCaddyRunMode.HostNetwork,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export function buildSharedServiceProfile(runtime, platform = process.platform) {
|
|
37
|
+
if (platform === 'darwin') {
|
|
38
|
+
return {
|
|
39
|
+
platform,
|
|
40
|
+
runtime,
|
|
41
|
+
corednsHostPort: corednsPrivilegedHostPort,
|
|
42
|
+
needsPrivilegedRedirects: false,
|
|
43
|
+
dnsSetupKind: SharedServiceDnsSetupKind.MacosResolver,
|
|
44
|
+
...buildCaddyServiceProfile(platform),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
platform,
|
|
49
|
+
runtime,
|
|
50
|
+
corednsHostPort: corednsUnprivilegedHostPort,
|
|
51
|
+
needsPrivilegedRedirects: true,
|
|
52
|
+
dnsSetupKind: SharedServiceDnsSetupKind.SystemdResolved,
|
|
53
|
+
...buildCaddyServiceProfile(platform),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=shared-service-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-service-profile.js","sourceRoot":"","sources":["../../src/config/shared-service-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG5N,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACjC,yDAA4B,CAAA;IAC5B,8CAAiB,CAAA;AACrB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAED,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACjC,iEAAoC,CAAA;IACpC,6DAAgC,CAAA;AACpC,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAqBD,MAAM,UAAU,wBAAwB,CAAC,WAA4B,OAAO,CAAC,QAAQ;IACjF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACH,iBAAiB,EAAE,aAAa;YAChC,kBAAkB,EAAE,cAAc;YAClC,mBAAmB,EAAE,aAAa;YAClC,oBAAoB,EAAE,cAAc;YACpC,oBAAoB,EAAE,SAAS;YAC/B,cAAc,EAAE,iBAAiB;YACjC,eAAe,EAAE,SAAS;YAC1B,YAAY,EAAE,yBAAyB,CAAC,MAAM;SACjD,CAAC;IACN,CAAC;IAED,OAAO;QACH,iBAAiB,EAAE,yBAAyB;QAC5C,kBAAkB,EAAE,0BAA0B;QAC9C,mBAAmB,EAAE,yBAAyB;QAC9C,oBAAoB,EAAE,0BAA0B;QAChD,oBAAoB,EAAE,aAAa;QACnC,cAAc,EAAE,aAAa;QAC7B,eAAe,EAAE,aAAa;QAC9B,YAAY,EAAE,yBAAyB,CAAC,WAAW;KACtD,CAAC;AACN,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAyB,EAAE,WAA4B,OAAO,CAAC,QAAQ;IAC7G,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO;YACH,QAAQ;YACR,OAAO;YACP,eAAe,EAAE,yBAAyB;YAC1C,wBAAwB,EAAE,KAAK;YAC/B,YAAY,EAAE,yBAAyB,CAAC,aAAa;YACrD,GAAG,wBAAwB,CAAC,QAAQ,CAAC;SACxC,CAAC;IACN,CAAC;IAED,OAAO;QACH,QAAQ;QACR,OAAO;QACP,eAAe,EAAE,2BAA2B;QAC5C,wBAAwB,EAAE,IAAI;QAC9B,YAAY,EAAE,yBAAyB,CAAC,eAAe;QACvD,GAAG,wBAAwB,CAAC,QAAQ,CAAC;KACxC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type CliContext = {
|
|
2
|
+
rootDir: string;
|
|
3
|
+
generatedDir: string;
|
|
4
|
+
env: string;
|
|
5
|
+
workspace: string;
|
|
6
|
+
verbose: boolean;
|
|
7
|
+
instance: {
|
|
8
|
+
name: string;
|
|
9
|
+
prefix: string;
|
|
10
|
+
primary: boolean;
|
|
11
|
+
portOffset: number;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
export declare function createContext(options: {
|
|
15
|
+
env: string;
|
|
16
|
+
instanceName?: string;
|
|
17
|
+
verbose: boolean;
|
|
18
|
+
}): Promise<CliContext>;
|
|
19
|
+
//# sourceMappingURL=create-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-context.d.ts","sourceRoot":"","sources":["../../src/context/create-context.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL,CAAC;AAEF,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAoB1H"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { resolvePrimaryInstance, resolvePrimaryWorkspaceRoot, resolveWorkspaceName } from './workspace.js';
|
|
3
|
+
import { buildInstance } from './instance.js';
|
|
4
|
+
import { getProjectPath } from './project-path.js';
|
|
5
|
+
import { resolvePortOffset } from './port-allocation.js';
|
|
6
|
+
export async function createContext(options) {
|
|
7
|
+
const rootDir = path.resolve(getProjectPath());
|
|
8
|
+
const workspace = await resolveWorkspaceName(rootDir);
|
|
9
|
+
const workspaceRoot = await resolvePrimaryWorkspaceRoot(rootDir);
|
|
10
|
+
const primary = await resolvePrimaryInstance(rootDir);
|
|
11
|
+
const instance = buildInstance({
|
|
12
|
+
env: options.env,
|
|
13
|
+
workspace,
|
|
14
|
+
primary,
|
|
15
|
+
overrideName: options.instanceName,
|
|
16
|
+
});
|
|
17
|
+
return await resolvePortOffset({
|
|
18
|
+
rootDir,
|
|
19
|
+
generatedDir: path.join(workspaceRoot ?? rootDir, '.development/cli/generated'),
|
|
20
|
+
env: options.env,
|
|
21
|
+
workspace,
|
|
22
|
+
verbose: options.verbose,
|
|
23
|
+
instance,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=create-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-context.js","sourceRoot":"","sources":["../../src/context/create-context.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAgBzD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAiE;IACjG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,MAAM,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC3B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS;QACT,OAAO;QACP,YAAY,EAAE,OAAO,CAAC,YAAY;KACrC,CAAC,CAAC;IAEH,OAAO,MAAM,iBAAiB,CAAC;QAC3B,OAAO;QACP,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,4BAA4B,CAAC;QAC/E,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS;QACT,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ;KACX,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function buildInstance(options: {
|
|
2
|
+
env: string;
|
|
3
|
+
workspace: string;
|
|
4
|
+
primary: boolean;
|
|
5
|
+
overrideName?: string;
|
|
6
|
+
}): {
|
|
7
|
+
name: string;
|
|
8
|
+
prefix: string;
|
|
9
|
+
primary: boolean;
|
|
10
|
+
portOffset: number;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=instance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/context/instance.ts"],"names":[],"mappings":"AAUA,wBAAgB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;EAiBjH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { slug } from './workspace.js';
|
|
2
|
+
function checksum(value) {
|
|
3
|
+
let hash = 0;
|
|
4
|
+
for (const char of value) {
|
|
5
|
+
hash = ((hash << 5) - hash + char.charCodeAt(0)) | 0;
|
|
6
|
+
}
|
|
7
|
+
return Math.abs(hash);
|
|
8
|
+
}
|
|
9
|
+
export function buildInstance(options) {
|
|
10
|
+
const envSlug = slug(options.env) || 'stamhoofd';
|
|
11
|
+
const inferredPrefix = options.primary ? '' : slug(options.workspace);
|
|
12
|
+
const prefix = slug(process.env.STAMHOOFD_INSTANCE_PREFIX ?? inferredPrefix);
|
|
13
|
+
const primary = options.primary && !prefix;
|
|
14
|
+
const baseName = primary ? 'stamhoofd' : `stamhoofd-${prefix || options.workspace}`;
|
|
15
|
+
const inferredName = envSlug === 'stamhoofd' ? baseName : `${baseName}-${envSlug}`;
|
|
16
|
+
const name = slug(options.overrideName ?? process.env.STAMHOOFD_DEV_NAME ?? inferredName) || 'stamhoofd';
|
|
17
|
+
const defaultOffset = primary && envSlug === 'stamhoofd' ? 0 : ((checksum(`${options.workspace}:${envSlug}`) % 50) + 1) * 100;
|
|
18
|
+
const configuredOffset = Number.parseInt(process.env.STAMHOOFD_PORT_OFFSET ?? `${defaultOffset}`, 10);
|
|
19
|
+
return {
|
|
20
|
+
name,
|
|
21
|
+
prefix: primary ? '' : prefix,
|
|
22
|
+
primary,
|
|
23
|
+
portOffset: Number.isFinite(configuredOffset) ? configuredOffset : defaultOffset,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=instance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../src/context/instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,SAAS,QAAQ,CAAC,KAAa;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAoF;IAC9G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;IACjD,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,cAAc,CAAC,CAAC;IAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC;IAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IACpF,MAAM,YAAY,GAAG,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;IACnF,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAC,IAAI,WAAW,CAAC;IACzG,MAAM,aAAa,GAAG,OAAO,IAAI,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9H,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,aAAa,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtG,OAAO;QACH,IAAI;QACJ,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM;QAC7B,OAAO;QACP,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa;KACnF,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-allocation.d.ts","sourceRoot":"","sources":["../../src/context/port-allocation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgBtD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CA6BhF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import net from 'node:net';
|
|
2
|
+
import { buildPorts } from './ports.js';
|
|
3
|
+
const portResolutionStep = 100;
|
|
4
|
+
const maxResolutionAttempts = 100;
|
|
5
|
+
var AppPortName;
|
|
6
|
+
(function (AppPortName) {
|
|
7
|
+
AppPortName["WebApp"] = "webApp";
|
|
8
|
+
AppPortName["Webshop"] = "webshop";
|
|
9
|
+
AppPortName["Api"] = "api";
|
|
10
|
+
AppPortName["Renderer"] = "renderer";
|
|
11
|
+
AppPortName["Sso"] = "sso";
|
|
12
|
+
})(AppPortName || (AppPortName = {}));
|
|
13
|
+
const appPortNames = [AppPortName.WebApp, AppPortName.Webshop, AppPortName.Api, AppPortName.Renderer, AppPortName.Sso];
|
|
14
|
+
export async function resolvePortOffset(context) {
|
|
15
|
+
if (process.env.STAMHOOFD_PORT_OFFSET_LOCKED === '1') {
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
18
|
+
if (process.env.STAMHOOFD_PORT_OFFSET) {
|
|
19
|
+
await assertPortsAvailable(context);
|
|
20
|
+
return context;
|
|
21
|
+
}
|
|
22
|
+
let candidate = context;
|
|
23
|
+
for (let attempt = 0; attempt < maxResolutionAttempts; attempt++) {
|
|
24
|
+
// Keep each instance on a stable bucket when possible, but move in
|
|
25
|
+
// predictable steps so multiple local clones can coexist.
|
|
26
|
+
if (await appPortsAvailable(candidate)) {
|
|
27
|
+
return candidate;
|
|
28
|
+
}
|
|
29
|
+
candidate = {
|
|
30
|
+
...candidate,
|
|
31
|
+
instance: {
|
|
32
|
+
...candidate.instance,
|
|
33
|
+
portOffset: candidate.instance.portOffset + portResolutionStep,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`Could not find a free development port range for instance ${context.instance.name}`);
|
|
38
|
+
}
|
|
39
|
+
async function assertPortsAvailable(context) {
|
|
40
|
+
const occupied = await occupiedAppPorts(context);
|
|
41
|
+
if (occupied.length === 0) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const details = occupied.map(({ name, port }) => `${name}:${port}`).join(', ');
|
|
45
|
+
throw new Error(`Configured port offset ${context.instance.portOffset} is unavailable for instance ${context.instance.name} (${details})`);
|
|
46
|
+
}
|
|
47
|
+
async function appPortsAvailable(context) {
|
|
48
|
+
return (await occupiedAppPorts(context)).length === 0;
|
|
49
|
+
}
|
|
50
|
+
async function occupiedAppPorts(context) {
|
|
51
|
+
const ports = buildPorts(context);
|
|
52
|
+
const results = await Promise.all(appPortNames.map(async (name) => ({
|
|
53
|
+
name,
|
|
54
|
+
port: ports[name],
|
|
55
|
+
available: await isPortAvailable(ports[name]),
|
|
56
|
+
})));
|
|
57
|
+
return results
|
|
58
|
+
.filter(result => !result.available)
|
|
59
|
+
.map(({ name, port }) => ({ name, port }));
|
|
60
|
+
}
|
|
61
|
+
async function isPortAvailable(port) {
|
|
62
|
+
return await new Promise((resolve) => {
|
|
63
|
+
const server = net.createServer();
|
|
64
|
+
server.once('error', (error) => {
|
|
65
|
+
if (error.code === 'EADDRINUSE' || error.code === 'EACCES') {
|
|
66
|
+
resolve(false);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
resolve(false);
|
|
70
|
+
});
|
|
71
|
+
server.once('listening', () => {
|
|
72
|
+
server.close(() => resolve(true));
|
|
73
|
+
});
|
|
74
|
+
server.listen(port, '127.0.0.1');
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=port-allocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port-allocation.js","sourceRoot":"","sources":["../../src/context/port-allocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CliContext } from './create-context.js';
|
|
2
|
+
export declare function buildPorts(context: CliContext): {
|
|
3
|
+
webApp: number;
|
|
4
|
+
webshop: number;
|
|
5
|
+
api: number;
|
|
6
|
+
renderer: number;
|
|
7
|
+
mysql: number;
|
|
8
|
+
maildevSmtp: number;
|
|
9
|
+
maildevHttp: number;
|
|
10
|
+
rustfs: number;
|
|
11
|
+
rustfsConsole: number;
|
|
12
|
+
sso: number;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=ports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/context/ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU;;;;;;;;;;;EAc7C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { maildevInternalHttpPort, maildevInternalSmtpPort, mysqlInternalPort, rustfsInternalApiPort, rustfsInternalConsolePort } from '../config/shared-service-config.js';
|
|
2
|
+
export function buildPorts(context) {
|
|
3
|
+
const offset = context.instance.portOffset;
|
|
4
|
+
return {
|
|
5
|
+
webApp: 8080 + offset,
|
|
6
|
+
webshop: 8082 + offset,
|
|
7
|
+
api: 9091 + offset,
|
|
8
|
+
renderer: 9093 + offset,
|
|
9
|
+
mysql: Number.parseInt(process.env.MYSQL_PORT ?? String(mysqlInternalPort + 1), 10),
|
|
10
|
+
maildevSmtp: Number.parseInt(process.env.MAILDEV_SMTP_PORT ?? String(maildevInternalSmtpPort), 10),
|
|
11
|
+
maildevHttp: Number.parseInt(process.env.MAILDEV_HTTP_PORT ?? String(maildevInternalHttpPort), 10),
|
|
12
|
+
rustfs: Number.parseInt(process.env.RUSTFS_PORT ?? String(rustfsInternalApiPort), 10),
|
|
13
|
+
rustfsConsole: Number.parseInt(process.env.RUSTFS_CONSOLE_PORT ?? String(rustfsInternalConsolePort), 10),
|
|
14
|
+
sso: 5556 + offset,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=ports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/context/ports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE3K,MAAM,UAAU,UAAU,CAAC,OAAmB;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC3C,OAAO;QACH,MAAM,EAAE,IAAI,GAAG,MAAM;QACrB,OAAO,EAAE,IAAI,GAAG,MAAM;QACtB,GAAG,EAAE,IAAI,GAAG,MAAM;QAClB,QAAQ,EAAE,IAAI,GAAG,MAAM;QACvB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QACnF,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC;QAClG,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,uBAAuB,CAAC,EAAE,EAAE,CAAC;QAClG,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;QACrF,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,CAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC;QACxG,GAAG,EAAE,IAAI,GAAG,MAAM;KACrB,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-path.d.ts","sourceRoot":"","sources":["../../src/context/project-path.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,IAAI,MAAM,CAGvC"}
|