@wildo-ai/platform-config-lib 1.0.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/dist/esm/bootstrap/application-backend-env.contracts.d.ts +2 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.js +2 -0
- package/dist/esm/bootstrap/application-backend-env.contracts.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap-planner.d.ts +20 -0
- package/dist/esm/bootstrap/bootstrap-planner.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap-planner.js +26 -0
- package/dist/esm/bootstrap/bootstrap-planner.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap.contracts.d.ts +120 -0
- package/dist/esm/bootstrap/bootstrap.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap.contracts.js +117 -0
- package/dist/esm/bootstrap/bootstrap.contracts.js.map +1 -0
- package/dist/esm/bootstrap/bootstrap.schemas.d.ts +485 -0
- package/dist/esm/bootstrap/bootstrap.schemas.d.ts.map +1 -0
- package/dist/esm/bootstrap/bootstrap.schemas.js +130 -0
- package/dist/esm/bootstrap/bootstrap.schemas.js.map +1 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts +78 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.js +98 -0
- package/dist/esm/bootstrap/platform-runtime-env.contracts.js.map +1 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.d.ts +17 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.d.ts.map +1 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.js +60 -0
- package/dist/esm/bootstrap/runtime-topology.contracts.js.map +1 -0
- package/dist/esm/credentials/credential-generator.service.d.ts +11 -0
- package/dist/esm/credentials/credential-generator.service.d.ts.map +1 -0
- package/dist/esm/credentials/credential-generator.service.js +31 -0
- package/dist/esm/credentials/credential-generator.service.js.map +1 -0
- package/dist/esm/credentials/credentials-provisioner.service.d.ts +190 -0
- package/dist/esm/credentials/credentials-provisioner.service.d.ts.map +1 -0
- package/dist/esm/credentials/credentials-provisioner.service.js +278 -0
- package/dist/esm/credentials/credentials-provisioner.service.js.map +1 -0
- package/dist/esm/index.d.ts +16 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/infra-managers/infra-manager.models.d.ts +146 -0
- package/dist/esm/infra-managers/infra-manager.models.d.ts.map +1 -0
- package/dist/esm/infra-managers/infra-manager.models.js +2 -0
- package/dist/esm/infra-managers/infra-manager.models.js.map +1 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts +64 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.js +307 -0
- package/dist/esm/infra-managers/mongo-atlas-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/postgresql-manager.service.d.ts +115 -0
- package/dist/esm/infra-managers/postgresql-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/postgresql-manager.service.js +403 -0
- package/dist/esm/infra-managers/postgresql-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts +64 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.js +288 -0
- package/dist/esm/infra-managers/rabbitmq-manager.service.js.map +1 -0
- package/dist/esm/infra-managers/redis-manager.service.d.ts +78 -0
- package/dist/esm/infra-managers/redis-manager.service.d.ts.map +1 -0
- package/dist/esm/infra-managers/redis-manager.service.js +326 -0
- package/dist/esm/infra-managers/redis-manager.service.js.map +1 -0
- package/dist/esm/project-config/define-framework-config.d.ts +36 -0
- package/dist/esm/project-config/define-framework-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-framework-config.js +30 -0
- package/dist/esm/project-config/define-framework-config.js.map +1 -0
- package/dist/esm/project-config/define-infra-config.d.ts +128 -0
- package/dist/esm/project-config/define-infra-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-infra-config.js +87 -0
- package/dist/esm/project-config/define-infra-config.js.map +1 -0
- package/dist/esm/project-config/define-minion-config.d.ts +41 -0
- package/dist/esm/project-config/define-minion-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-minion-config.js +24 -0
- package/dist/esm/project-config/define-minion-config.js.map +1 -0
- package/dist/esm/project-config/define-platform-config.d.ts +65 -0
- package/dist/esm/project-config/define-platform-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-platform-config.js +22 -0
- package/dist/esm/project-config/define-platform-config.js.map +1 -0
- package/dist/esm/project-config/define-platform-env-config.d.ts +41 -0
- package/dist/esm/project-config/define-platform-env-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-platform-env-config.js +45 -0
- package/dist/esm/project-config/define-platform-env-config.js.map +1 -0
- package/dist/esm/project-config/define-project-config.d.ts +38 -0
- package/dist/esm/project-config/define-project-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-project-config.js +57 -0
- package/dist/esm/project-config/define-project-config.js.map +1 -0
- package/dist/esm/project-config/define-saas-config.d.ts +252 -0
- package/dist/esm/project-config/define-saas-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-saas-config.js +137 -0
- package/dist/esm/project-config/define-saas-config.js.map +1 -0
- package/dist/esm/project-config/define-sharing-policy.d.ts +35 -0
- package/dist/esm/project-config/define-sharing-policy.d.ts.map +1 -0
- package/dist/esm/project-config/define-sharing-policy.js +30 -0
- package/dist/esm/project-config/define-sharing-policy.js.map +1 -0
- package/dist/esm/project-config/define-worker-config.d.ts +42 -0
- package/dist/esm/project-config/define-worker-config.d.ts.map +1 -0
- package/dist/esm/project-config/define-worker-config.js +24 -0
- package/dist/esm/project-config/define-worker-config.js.map +1 -0
- package/dist/esm/project-config/index.d.ts +22 -0
- package/dist/esm/project-config/index.d.ts.map +1 -0
- package/dist/esm/project-config/index.js +22 -0
- package/dist/esm/project-config/index.js.map +1 -0
- package/dist/esm/project-config/loader.d.ts +42 -0
- package/dist/esm/project-config/loader.d.ts.map +1 -0
- package/dist/esm/project-config/loader.js +164 -0
- package/dist/esm/project-config/loader.js.map +1 -0
- package/dist/esm/project-config/shared/application-modules.schemas.d.ts +10 -0
- package/dist/esm/project-config/shared/application-modules.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/application-modules.schemas.js +6 -0
- package/dist/esm/project-config/shared/application-modules.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/application-modules.utils.d.ts +6 -0
- package/dist/esm/project-config/shared/application-modules.utils.d.ts.map +1 -0
- package/dist/esm/project-config/shared/application-modules.utils.js +26 -0
- package/dist/esm/project-config/shared/application-modules.utils.js.map +1 -0
- package/dist/esm/project-config/shared/backing-services.schemas.d.ts +68 -0
- package/dist/esm/project-config/shared/backing-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/backing-services.schemas.js +49 -0
- package/dist/esm/project-config/shared/backing-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/data-services.schemas.d.ts +33 -0
- package/dist/esm/project-config/shared/data-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/data-services.schemas.js +47 -0
- package/dist/esm/project-config/shared/data-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/env-example-defaults.d.ts +27 -0
- package/dist/esm/project-config/shared/env-example-defaults.d.ts.map +1 -0
- package/dist/esm/project-config/shared/env-example-defaults.js +30 -0
- package/dist/esm/project-config/shared/env-example-defaults.js.map +1 -0
- package/dist/esm/project-config/shared/environment.schemas.d.ts +106 -0
- package/dist/esm/project-config/shared/environment.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/environment.schemas.js +111 -0
- package/dist/esm/project-config/shared/environment.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts +42 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js +42 -0
- package/dist/esm/project-config/shared/infrastructure-defaults.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/k8s-utils.d.ts +36 -0
- package/dist/esm/project-config/shared/k8s-utils.d.ts.map +1 -0
- package/dist/esm/project-config/shared/k8s-utils.js +50 -0
- package/dist/esm/project-config/shared/k8s-utils.js.map +1 -0
- package/dist/esm/project-config/shared/platform-services.schemas.d.ts +30 -0
- package/dist/esm/project-config/shared/platform-services.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/platform-services.schemas.js +27 -0
- package/dist/esm/project-config/shared/platform-services.schemas.js.map +1 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.d.ts +42 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.d.ts.map +1 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.js +29 -0
- package/dist/esm/project-config/shared/service-definitions.schemas.js.map +1 -0
- package/dist/esm/project-config/sharing-policy-validation.d.ts +40 -0
- package/dist/esm/project-config/sharing-policy-validation.d.ts.map +1 -0
- package/dist/esm/project-config/sharing-policy-validation.js +143 -0
- package/dist/esm/project-config/sharing-policy-validation.js.map +1 -0
- package/dist/esm/release/framework-release.constants.d.ts +3 -0
- package/dist/esm/release/framework-release.constants.d.ts.map +1 -0
- package/dist/esm/release/framework-release.constants.js +3 -0
- package/dist/esm/release/framework-release.constants.js.map +1 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts +23 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.d.ts.map +1 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js +13 -0
- package/dist/esm/runtime-bridge/platform-runtime-bridge.contracts.js.map +1 -0
- package/dist/esm/schemas/framework-info.schemas.d.ts +8 -0
- package/dist/esm/schemas/framework-info.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/framework-info.schemas.js +8 -0
- package/dist/esm/schemas/framework-info.schemas.js.map +1 -0
- package/dist/esm/schemas/framework-secrets.schemas.d.ts +22 -0
- package/dist/esm/schemas/framework-secrets.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/framework-secrets.schemas.js +14 -0
- package/dist/esm/schemas/framework-secrets.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-application-config.schemas.d.ts +20 -0
- package/dist/esm/schemas/platform-application-config.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-application-config.schemas.js +19 -0
- package/dist/esm/schemas/platform-application-config.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.d.ts +54 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.js +67 -0
- package/dist/esm/schemas/platform-application-secrets.schemas.js.map +1 -0
- package/dist/esm/schemas/platform-config.schemas.d.ts +66 -0
- package/dist/esm/schemas/platform-config.schemas.d.ts.map +1 -0
- package/dist/esm/schemas/platform-config.schemas.js +28 -0
- package/dist/esm/schemas/platform-config.schemas.js.map +1 -0
- package/dist/esm/workspace-scope/index.d.ts +3 -0
- package/dist/esm/workspace-scope/index.d.ts.map +1 -0
- package/dist/esm/workspace-scope/index.js +3 -0
- package/dist/esm/workspace-scope/index.js.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.d.ts +15 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.d.ts.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.js +87 -0
- package/dist/esm/workspace-scope/workspace-scope-detector.js.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts +118 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.d.ts.map +1 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.js +157 -0
- package/dist/esm/workspace-scope/workspace-scope.schemas.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +52 -0
- package/src/bootstrap/application-backend-env.contracts.ts +17 -0
- package/src/bootstrap/bootstrap-planner.ts +46 -0
- package/src/bootstrap/bootstrap.contracts.ts +251 -0
- package/src/bootstrap/bootstrap.schemas.ts +164 -0
- package/src/bootstrap/platform-runtime-env.contracts.ts +99 -0
- package/src/bootstrap/runtime-topology.contracts.ts +102 -0
- package/src/credentials/credential-generator.service.ts +39 -0
- package/src/index.ts +16 -0
- package/src/project-config/__tests__/application-modules.utils.test.ts +53 -0
- package/src/project-config/__tests__/define-framework-config.test.ts +43 -0
- package/src/project-config/__tests__/define-saas-config.test.ts +210 -0
- package/src/project-config/__tests__/loader.test.ts +100 -0
- package/src/project-config/define-framework-config.ts +44 -0
- package/src/project-config/define-infra-config.ts +168 -0
- package/src/project-config/define-minion-config.ts +27 -0
- package/src/project-config/define-platform-config.ts +28 -0
- package/src/project-config/define-platform-env-config.ts +59 -0
- package/src/project-config/define-project-config.ts +63 -0
- package/src/project-config/define-saas-config.ts +171 -0
- package/src/project-config/define-sharing-policy.ts +36 -0
- package/src/project-config/define-worker-config.ts +27 -0
- package/src/project-config/index.ts +23 -0
- package/src/project-config/loader.ts +220 -0
- package/src/project-config/shared/application-modules.schemas.ts +12 -0
- package/src/project-config/shared/application-modules.utils.ts +65 -0
- package/src/project-config/shared/backing-services.schemas.ts +59 -0
- package/src/project-config/shared/data-services.schemas.ts +58 -0
- package/src/project-config/shared/env-example-defaults.ts +50 -0
- package/src/project-config/shared/environment.schemas.ts +136 -0
- package/src/project-config/shared/infrastructure-defaults.schemas.ts +47 -0
- package/src/project-config/shared/k8s-utils.ts +56 -0
- package/src/project-config/shared/platform-services.schemas.ts +33 -0
- package/src/project-config/shared/service-definitions.schemas.ts +38 -0
- package/src/project-config/sharing-policy-validation.ts +159 -0
- package/src/release/framework-release.constants.ts +2 -0
- package/src/schemas/__tests__/platform-config.schemas.test.ts +90 -0
- package/src/schemas/framework-info.schemas.ts +13 -0
- package/src/schemas/framework-secrets.schemas.ts +19 -0
- package/src/schemas/platform-application-config.schemas.ts +25 -0
- package/src/schemas/platform-application-secrets.schemas.ts +78 -0
- package/src/schemas/platform-config.schemas.ts +45 -0
- package/src/workspace-scope/index.ts +2 -0
- package/src/workspace-scope/workspace-scope-detector.ts +98 -0
- package/src/workspace-scope/workspace-scope.schemas.ts +224 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { homedir, tmpdir } from 'os';
|
|
2
|
+
import { dirname, join, relative, resolve } from 'path';
|
|
3
|
+
import { resolveWorkspaceScope } from './workspace-scope-detector';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Workspace scope detection types.
|
|
7
|
+
*
|
|
8
|
+
* Provides a hierarchical scope model for determining where a tool
|
|
9
|
+
* (CLI, companion, IDE extension) is being invoked from within the
|
|
10
|
+
* Wildo project structure.
|
|
11
|
+
*
|
|
12
|
+
* Scope hierarchy (most specific wins, each implies parent scopes):
|
|
13
|
+
* UNINITIALIZED → GLOBAL → FRAMEWORK → PROJECT → SAAS_APP
|
|
14
|
+
*
|
|
15
|
+
* Detection is based on committed config files as scope anchors,
|
|
16
|
+
* NOT on generated dot-directories (.wildo-project, .wildo-saas).
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Hierarchical workspace scope.
|
|
21
|
+
*
|
|
22
|
+
* Numeric values are ordered so that higher = more specific.
|
|
23
|
+
* This enables `>=` comparisons for "at least this scope" checks
|
|
24
|
+
* (e.g., `scope >= WorkspaceScope.PROJECT` means PROJECT or SAAS_APP).
|
|
25
|
+
*/
|
|
26
|
+
export enum WorkspaceScope {
|
|
27
|
+
/** No global preferences file found and CWD is outside any project or framework */
|
|
28
|
+
UNINITIALIZED = 0,
|
|
29
|
+
/** Global preferences file exists but CWD is outside any project or framework */
|
|
30
|
+
GLOBAL = 1,
|
|
31
|
+
/** CWD is inside the Wildo framework repository (.wildo-framework/ found) */
|
|
32
|
+
FRAMEWORK = 2,
|
|
33
|
+
/** CWD is inside a project (wildo.project.config.ts found) but not in a specific app */
|
|
34
|
+
PROJECT = 3,
|
|
35
|
+
/** CWD is inside a SaaS application directory (wildo.saas.config.ts found) */
|
|
36
|
+
SAAS_APP = 4,
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Result of workspace scope detection.
|
|
41
|
+
*
|
|
42
|
+
* All resolved paths are populated regardless of the final scope — a command
|
|
43
|
+
* in SAAS_APP scope can still access `projectRoot` and `frameworkRoot`.
|
|
44
|
+
*/
|
|
45
|
+
export interface WorkspaceScopeResult {
|
|
46
|
+
/** Most specific scope detected from CWD */
|
|
47
|
+
scope: WorkspaceScope;
|
|
48
|
+
|
|
49
|
+
/** Absolute path to `wildo.saas.config.ts`, if found */
|
|
50
|
+
saasConfigPath: string | null;
|
|
51
|
+
/** Directory containing `wildo.saas.config.ts` */
|
|
52
|
+
saasRoot: string | null;
|
|
53
|
+
|
|
54
|
+
/** Absolute path to `wildo.project.config.ts`, if found */
|
|
55
|
+
projectConfigPath: string | null;
|
|
56
|
+
/** Directory containing `wildo.project.config.ts` */
|
|
57
|
+
projectRoot: string | null;
|
|
58
|
+
|
|
59
|
+
/** Directory containing `.wildo-framework/`, if found */
|
|
60
|
+
frameworkRoot: string | null;
|
|
61
|
+
|
|
62
|
+
/** Absolute path to the global preferences file, if it exists */
|
|
63
|
+
globalPreferencesPath: string | null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Canonical config file and directory names used for scope detection.
|
|
68
|
+
* Single source of truth — CLI and other tools should reference these
|
|
69
|
+
* instead of hardcoding file names.
|
|
70
|
+
*/
|
|
71
|
+
export const WORKSPACE_CONFIG_NAMES = {
|
|
72
|
+
PROJECT: 'wildo.project.config.ts',
|
|
73
|
+
SAAS: 'wildo.saas.config.ts',
|
|
74
|
+
PLATFORM: 'wildo.platform.config.ts',
|
|
75
|
+
FRAMEWORK_DIR: '.wildo-framework',
|
|
76
|
+
PROJECT_DIR: '.wildo-project',
|
|
77
|
+
SAAS_DIR: '.wildo-saas',
|
|
78
|
+
GLOBAL_DIR: '.wildo',
|
|
79
|
+
PREFERENCES_FILE: 'preferences.json',
|
|
80
|
+
/** Directory under the project root containing platform configs and per-env overrides */
|
|
81
|
+
PLATFORM_DIR: 'wildo-platform',
|
|
82
|
+
/** File name prefix for per-env sharing policy files (e.g., `wildo.sharing-policy.local.ts`) */
|
|
83
|
+
SHARING_POLICY_PREFIX: 'wildo.sharing-policy.',
|
|
84
|
+
} as const;
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Runtime-owned zones for generated config-evaluation artifacts.
|
|
88
|
+
*
|
|
89
|
+
* These are semantic owners, not source locations. For example, a platform
|
|
90
|
+
* config stored in a sibling `platformPath` still belongs to the project zone
|
|
91
|
+
* and must emit artifacts under `.wildo-project/dist/...`, not beside the
|
|
92
|
+
* authored config file itself.
|
|
93
|
+
*/
|
|
94
|
+
export enum ConfigArtifactsZone {
|
|
95
|
+
FRAMEWORK = 'framework',
|
|
96
|
+
PLATFORM = 'platform',
|
|
97
|
+
PROJECT = 'project',
|
|
98
|
+
SAAS = 'saas',
|
|
99
|
+
TEMP = 'temp',
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface ConfigArtifactsLocationOptions {
|
|
103
|
+
zone: ConfigArtifactsZone;
|
|
104
|
+
ownerRoot: string;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function resolveGlobalWildoHomePath(userHome: string = homedir()): string {
|
|
108
|
+
return join(userHome, WORKSPACE_CONFIG_NAMES.GLOBAL_DIR);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function resolveGlobalPreferencesPath(userHome: string = homedir()): string {
|
|
112
|
+
return join(resolveGlobalWildoHomePath(userHome), WORKSPACE_CONFIG_NAMES.PREFERENCES_FILE);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function isPathInside(root: string, target: string): boolean {
|
|
116
|
+
const rel = relative(resolve(root), resolve(target));
|
|
117
|
+
return rel === '' || (!rel.startsWith('..') && rel !== '..');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function resolveConfigArtifactsBaseDir(options: ConfigArtifactsLocationOptions): string;
|
|
121
|
+
export function resolveConfigArtifactsBaseDir(filePath: string): string;
|
|
122
|
+
export function resolveConfigArtifactsBaseDir(
|
|
123
|
+
input: string | ConfigArtifactsLocationOptions,
|
|
124
|
+
): string {
|
|
125
|
+
if (typeof input !== 'string') {
|
|
126
|
+
return resolveConfigArtifactsBaseDirForZone(input);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const absolutePath = resolve(input);
|
|
130
|
+
const scope = resolveWorkspaceScope(dirname(absolutePath));
|
|
131
|
+
|
|
132
|
+
if (scope.saasRoot && isPathInside(scope.saasRoot, absolutePath)) {
|
|
133
|
+
return resolveConfigArtifactsBaseDirForZone({
|
|
134
|
+
zone: ConfigArtifactsZone.SAAS,
|
|
135
|
+
ownerRoot: scope.saasRoot,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (scope.projectRoot && isPathInside(scope.projectRoot, absolutePath)) {
|
|
140
|
+
return resolveConfigArtifactsBaseDirForZone({
|
|
141
|
+
zone: ConfigArtifactsZone.PROJECT,
|
|
142
|
+
ownerRoot: scope.projectRoot,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (scope.frameworkRoot && isPathInside(scope.frameworkRoot, absolutePath)) {
|
|
147
|
+
return resolveConfigArtifactsBaseDirForZone({
|
|
148
|
+
zone: ConfigArtifactsZone.FRAMEWORK,
|
|
149
|
+
ownerRoot: scope.frameworkRoot,
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return resolveConfigArtifactsBaseDirForZone({
|
|
154
|
+
zone: ConfigArtifactsZone.TEMP,
|
|
155
|
+
ownerRoot: absolutePath,
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Resolve the canonical runtime-owned base directory for config-loader
|
|
161
|
+
* artifacts. This keeps Jiti/SWC output out of authored declaration trees and
|
|
162
|
+
* anchors it under the matching runtime zone.
|
|
163
|
+
*/
|
|
164
|
+
export function resolveConfigArtifactsBaseDirForZone(options: ConfigArtifactsLocationOptions): string {
|
|
165
|
+
switch (options.zone) {
|
|
166
|
+
case ConfigArtifactsZone.FRAMEWORK:
|
|
167
|
+
return join(options.ownerRoot, WORKSPACE_CONFIG_NAMES.FRAMEWORK_DIR, 'dist', 'config-loader', 'framework');
|
|
168
|
+
case ConfigArtifactsZone.PLATFORM:
|
|
169
|
+
return join(options.ownerRoot, WORKSPACE_CONFIG_NAMES.PROJECT_DIR, 'dist', 'config-loader', 'platform');
|
|
170
|
+
case ConfigArtifactsZone.PROJECT:
|
|
171
|
+
return join(options.ownerRoot, WORKSPACE_CONFIG_NAMES.PROJECT_DIR, 'dist', 'config-loader', 'project');
|
|
172
|
+
case ConfigArtifactsZone.SAAS:
|
|
173
|
+
return join(options.ownerRoot, WORKSPACE_CONFIG_NAMES.SAAS_DIR, 'dist', 'config-loader', 'saas');
|
|
174
|
+
case ConfigArtifactsZone.TEMP:
|
|
175
|
+
return join(tmpdir(), 'wildo-jiti-cache');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export function resolveProjectPlatformRoot(
|
|
180
|
+
projectRoot: string,
|
|
181
|
+
platformPath: string = WORKSPACE_CONFIG_NAMES.PLATFORM_DIR,
|
|
182
|
+
): string {
|
|
183
|
+
return join(projectRoot, platformPath);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export function resolveProjectPlatformFilePath(
|
|
187
|
+
projectRoot: string,
|
|
188
|
+
platformPath: string = WORKSPACE_CONFIG_NAMES.PLATFORM_DIR,
|
|
189
|
+
...segments: string[]
|
|
190
|
+
): string {
|
|
191
|
+
return join(resolveProjectPlatformRoot(projectRoot, platformPath), ...segments);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Resolve the directory holding project-scoped platform files for one environment.
|
|
196
|
+
* The environment named `local` lives in `<platformPath>/local/`, while all other
|
|
197
|
+
* environment ids live in `<platformPath>/remotes/{envName}/`.
|
|
198
|
+
*/
|
|
199
|
+
export function resolveProjectPlatformEnvironmentDir(
|
|
200
|
+
projectRoot: string,
|
|
201
|
+
envName: string,
|
|
202
|
+
platformPath: string = WORKSPACE_CONFIG_NAMES.PLATFORM_DIR,
|
|
203
|
+
): string {
|
|
204
|
+
if (envName === 'local') {
|
|
205
|
+
return resolveProjectPlatformFilePath(projectRoot, platformPath, 'local');
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
return resolveProjectPlatformFilePath(projectRoot, platformPath, 'remotes', envName);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Resolve the sharing policy file path for a given environment.
|
|
213
|
+
* Handles the directory convention used by `resolveProjectPlatformEnvironmentDir()`:
|
|
214
|
+
* the environment named `local` lives in `<platformPath>/local/`, while all other
|
|
215
|
+
* environment ids live in `<platformPath>/remotes/{envName}/`.
|
|
216
|
+
*/
|
|
217
|
+
export function resolveSharingPolicyPath(
|
|
218
|
+
projectRoot: string,
|
|
219
|
+
envName: string,
|
|
220
|
+
platformPath: string = WORKSPACE_CONFIG_NAMES.PLATFORM_DIR,
|
|
221
|
+
): string {
|
|
222
|
+
const fileName = `${WORKSPACE_CONFIG_NAMES.SHARING_POLICY_PREFIX}${envName}.ts`;
|
|
223
|
+
return join(resolveProjectPlatformEnvironmentDir(projectRoot, envName, platformPath), fileName);
|
|
224
|
+
}
|