@tdk-landscape/tdk-cli-core 1.3.15 → 1.3.22

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.
Files changed (274) hide show
  1. package/Tiltfile +144 -0
  2. package/discovery/AGENTS.md +362 -0
  3. package/discovery/TILT_DISCOVERY.star +424 -0
  4. package/discovery/Tiltfile +58 -0
  5. package/discovery/config.star +258 -0
  6. package/discovery/constants.star +127 -0
  7. package/discovery/deterministic.star +211 -0
  8. package/discovery/discovery_daemon.star +191 -0
  9. package/discovery/discovery_orchestrator.star +460 -0
  10. package/discovery/filtering.star +5 -0
  11. package/discovery/identity-management-backend/service.yaml +26 -0
  12. package/discovery/identity-management-frontend/service.yaml +29 -0
  13. package/discovery/identity-sdk/service.yaml +9 -0
  14. package/discovery/incremental_discovery.star +213 -0
  15. package/discovery/indexing.star +7 -0
  16. package/discovery/json_manifest_scanner.star +51 -0
  17. package/discovery/libraries.star +46 -0
  18. package/discovery/loading.star +23 -0
  19. package/discovery/manifest/constants.star +104 -0
  20. package/discovery/manifest/loading.star +386 -0
  21. package/discovery/manifest/normalize.star +281 -0
  22. package/discovery/manifest/validation.star +108 -0
  23. package/discovery/normalization.star +11 -0
  24. package/discovery/registry.star +544 -0
  25. package/discovery/resource_snapshot.py +382 -0
  26. package/discovery/resource_snapshot.star +143 -0
  27. package/discovery/schemas.star +1 -0
  28. package/discovery/services/platform/cdc/debezium/nats-connector/service.yaml +9 -0
  29. package/discovery/services/platform/cdc/nats-http-bridge/service.yaml +9 -0
  30. package/discovery/services/platform/orchestrator/orchestrator-glue-backend/service.yaml +26 -0
  31. package/discovery/services/platform/synthetic-monitor/service.yaml +9 -0
  32. package/discovery/test_resource_snapshot.py +251 -0
  33. package/discovery/validation.star +78 -0
  34. package/discovery/versioning.star +1 -0
  35. package/dist/commands/config.d.ts.map +1 -1
  36. package/dist/commands/config.js +11 -0
  37. package/dist/commands/config.js.map +1 -1
  38. package/dist/commands/doctor.d.ts.map +1 -1
  39. package/dist/commands/doctor.js +1 -2
  40. package/dist/commands/doctor.js.map +1 -1
  41. package/dist/commands/project.d.ts.map +1 -1
  42. package/dist/commands/project.js +36 -41
  43. package/dist/commands/project.js.map +1 -1
  44. package/dist/commands/resource.d.ts.map +1 -1
  45. package/dist/commands/resource.js +51 -55
  46. package/dist/commands/resource.js.map +1 -1
  47. package/dist/commands/stack.d.ts.map +1 -1
  48. package/dist/commands/stack.js +22 -24
  49. package/dist/commands/stack.js.map +1 -1
  50. package/dist/commands/ui.d.ts.map +1 -1
  51. package/dist/commands/ui.js +1 -2
  52. package/dist/commands/ui.js.map +1 -1
  53. package/dist/commands/up.d.ts.map +1 -1
  54. package/dist/commands/up.js +1 -2
  55. package/dist/commands/up.js.map +1 -1
  56. package/dist/commands/upgrade.d.ts +8 -0
  57. package/dist/commands/upgrade.d.ts.map +1 -1
  58. package/dist/commands/upgrade.js +59 -18
  59. package/dist/commands/upgrade.js.map +1 -1
  60. package/dist/generator/extension-fetch.d.ts +19 -0
  61. package/dist/generator/extension-fetch.d.ts.map +1 -1
  62. package/dist/generator/extension-fetch.js +71 -5
  63. package/dist/generator/extension-fetch.js.map +1 -1
  64. package/dist/generator/template-engine.d.ts +1 -0
  65. package/dist/generator/template-engine.d.ts.map +1 -1
  66. package/dist/generator/template-engine.js +50 -6
  67. package/dist/generator/template-engine.js.map +1 -1
  68. package/dist/utils/command-helpers.d.ts.map +1 -1
  69. package/dist/utils/command-helpers.js +7 -9
  70. package/dist/utils/command-helpers.js.map +1 -1
  71. package/dist/utils/constants.d.ts +1 -0
  72. package/dist/utils/constants.d.ts.map +1 -1
  73. package/dist/utils/constants.js +1 -0
  74. package/dist/utils/constants.js.map +1 -1
  75. package/dist/utils/errors.d.ts +2 -0
  76. package/dist/utils/errors.d.ts.map +1 -1
  77. package/dist/utils/errors.js +6 -1
  78. package/dist/utils/errors.js.map +1 -1
  79. package/dist/utils/project-features.d.ts.map +1 -1
  80. package/dist/utils/project-features.js +1 -1
  81. package/dist/utils/project-features.js.map +1 -1
  82. package/dist/utils/resource-features.d.ts.map +1 -1
  83. package/dist/utils/resource-features.js +2 -2
  84. package/dist/utils/resource-features.js.map +1 -1
  85. package/dist/utils/tar.js +4 -4
  86. package/dist/utils/tar.js.map +1 -1
  87. package/dist/utils/validation.d.ts +7 -0
  88. package/dist/utils/validation.d.ts.map +1 -1
  89. package/dist/utils/validation.js +9 -0
  90. package/dist/utils/validation.js.map +1 -1
  91. package/engine/AGENTS.md +705 -0
  92. package/engine/README.md +29 -0
  93. package/engine/REFACTORING_MANIFEST_SYSTEM.md +974 -0
  94. package/engine/Tiltfile +80 -0
  95. package/engine/assets/docker/golden-layers.Dockerfile +221 -0
  96. package/engine/assets/scripts/cleanup-completed-migrator-images.sh +37 -0
  97. package/engine/assets/scripts/cleanup-tilt-images.sh +120 -0
  98. package/engine/assets/scripts/mac-m1-resource-monitor.sh +121 -0
  99. package/engine/config.star +3 -0
  100. package/engine/docs/AUTODISCOVERY_TEST.md +182 -0
  101. package/engine/docs/C4-ARCHITECTURE-operations.md +396 -0
  102. package/engine/docs/C4-ARCHITECTURE-overview.md +284 -0
  103. package/engine/docs/C4-ARCHITECTURE.md +17 -0
  104. package/engine/docs/GOLDEN_IMAGE_INTEGRATION.md +349 -0
  105. package/engine/docs/MANIFEST_DRIVEN_ARCHITECTURE.md +357 -0
  106. package/engine/docs/README.md +284 -0
  107. package/engine/entrypoint.star +97 -0
  108. package/engine/lifecycle/orchestrator.star +260 -0
  109. package/engine/paths.star +717 -0
  110. package/engine/schemas/manifest-schema.json +301 -0
  111. package/engine/schemas/service-schema.json +301 -0
  112. package/engine/scripts/README.md +89 -0
  113. package/engine/scripts/build-and-publish-lib.sh +205 -0
  114. package/engine/scripts/check-lib-publish.sh +85 -0
  115. package/engine/scripts/debug-container.sh +258 -0
  116. package/engine/scripts/generate-manifest.sh +197 -0
  117. package/engine/spec.master +702 -0
  118. package/engine/spec.master.example +341 -0
  119. package/engine/topologies/README.md +34 -0
  120. package/engine/topologies/platform/docker/AGENTS.md +59 -0
  121. package/engine/topologies/platform/docker/auth/auth.star +167 -0
  122. package/engine/topologies/platform/docker/build/golden_image.star +37 -0
  123. package/engine/topologies/platform/docker/build/golden_image_build.star +82 -0
  124. package/engine/topologies/platform/docker/build/golden_image_constants.star +93 -0
  125. package/engine/topologies/platform/docker/build/golden_image_dockerfile.star +291 -0
  126. package/engine/topologies/platform/docker/compose/compose.star +636 -0
  127. package/engine/topologies/platform/docker/compose/compose_helpers.star +52 -0
  128. package/engine/topologies/platform/docker/compose/traefik_standalone.star +53 -0
  129. package/engine/topologies/platform/docker/config/bunignore.star +142 -0
  130. package/engine/topologies/platform/docker/config/dockerignore.star +150 -0
  131. package/engine/topologies/platform/docker/constants.star +170 -0
  132. package/engine/topologies/platform/docker/dockerfile/dockerfile.star +54 -0
  133. package/engine/topologies/platform/docker/generators/golden_docker_generator_v2.star +73 -0
  134. package/engine/topologies/platform/docker/index.star +27 -0
  135. package/engine/topologies/platform/docker/layers/bun_helpers.star +23 -0
  136. package/engine/topologies/platform/docker/layers/infisical/index.star +40 -0
  137. package/engine/topologies/platform/docker/layers/infisical/infisical_docker.star +262 -0
  138. package/engine/topologies/platform/docker/layers/l1_base_layers.star +87 -0
  139. package/engine/topologies/platform/docker/layers/l2_dependency_layers.star +125 -0
  140. package/engine/topologies/platform/docker/layers/l3_builder_layers.star +209 -0
  141. package/engine/topologies/platform/docker/layers/l4_runtime_layers.star +214 -0
  142. package/engine/topologies/platform/docker/layers/prisma/constants.star +135 -0
  143. package/engine/topologies/platform/docker/layers/prisma/db_readiness.star +96 -0
  144. package/engine/topologies/platform/docker/layers/prisma/filesystem_setup.star +109 -0
  145. package/engine/topologies/platform/docker/layers/prisma/migrate_script.star +98 -0
  146. package/engine/topologies/platform/docker/layers/prisma/prisma_build.star +126 -0
  147. package/engine/topologies/platform/docker/layers/prisma/prisma_runtime.star +161 -0
  148. package/engine/topologies/platform/docker/layers/prisma/secret_resolution.star +119 -0
  149. package/engine/topologies/platform/docker/networking/api_path_constants.star +230 -0
  150. package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +27 -0
  151. package/engine/topologies/platform/docker/networking/traefik.star +232 -0
  152. package/engine/topologies/platform/docker/networking/traefik_constants.star +146 -0
  153. package/engine/topologies/platform/docker/networking/traefik_helpers.star +160 -0
  154. package/engine/topologies/platform/docker/secrets/infisical.star +135 -0
  155. package/engine/topologies/platform/net/proxy.star +4 -0
  156. package/engine/topologies/platform/registries/local.star +4 -0
  157. package/engine/topologies/platform/security/secrets.star +239 -0
  158. package/engine/topologies/platform/state/relational.star +4 -0
  159. package/engine/topologies/tilt/common/AGENTS.md +59 -0
  160. package/engine/topologies/tilt/common/utils.star +364 -0
  161. package/engine/topologies/tilt/common/utils_debug.star +69 -0
  162. package/engine/topologies/tilt/common/utils_deterministic.star +168 -0
  163. package/engine/topologies/tilt/common/utils_docker_networks.star +46 -0
  164. package/engine/topologies/tilt/common/utils_env.star +43 -0
  165. package/engine/topologies/tilt/common/utils_output.star +97 -0
  166. package/engine/topologies/tilt/config/AGENTS.md +68 -0
  167. package/engine/topologies/tilt/config/defaults.star +3 -0
  168. package/engine/topologies/tilt/config/feature_flags.star +10 -0
  169. package/engine/topologies/tilt/config/global.star +55 -0
  170. package/engine/topologies/tilt/config/profiles.star +382 -0
  171. package/engine/topologies/tilt/generators/agents_md.star +62 -0
  172. package/engine/topologies/tilt/generators/api_gateway.star +145 -0
  173. package/engine/topologies/tilt/generators/index.star +124 -0
  174. package/engine/topologies/tilt/generators/infisical/README.md +424 -0
  175. package/engine/topologies/tilt/generators/infisical/examples.star +312 -0
  176. package/engine/topologies/tilt/generators/infisical/index.star +57 -0
  177. package/engine/topologies/tilt/generators/infisical/machine_identity.star +420 -0
  178. package/engine/topologies/tilt/generators/infisical/organization.star +534 -0
  179. package/engine/topologies/tilt/generators/infisical/path_manager.star +476 -0
  180. package/engine/topologies/tilt/generators/infisical/secrets_generator.star +420 -0
  181. package/engine/topologies/tilt/generators/nginx_conf.star +143 -0
  182. package/engine/topologies/tilt/generators/npmrc.star +111 -0
  183. package/engine/topologies/tilt/generators/tsconfig.star +23 -0
  184. package/engine/topologies/tilt/generators/typescript/backend_library_tsconfig.star +71 -0
  185. package/engine/topologies/tilt/generators/typescript/backend_tsconfig.star +124 -0
  186. package/engine/topologies/tilt/generators/typescript/common.star +7 -0
  187. package/engine/topologies/tilt/generators/typescript/frontend_library_tsconfig.star +76 -0
  188. package/engine/topologies/tilt/generators/typescript/frontend_tsconfig.star +110 -0
  189. package/engine/topologies/tilt/generators/typescript/include.star +23 -0
  190. package/engine/topologies/tilt/generators/typescript/playwright_config.star +40 -0
  191. package/engine/topologies/tilt/generators/typescript/prisma_config.star +49 -0
  192. package/engine/topologies/tilt/generators/validators.star +853 -0
  193. package/engine/topologies/tilt/generators/vite/backend.star +78 -0
  194. package/engine/topologies/tilt/generators/vite/frontend.star +98 -0
  195. package/engine/topologies/tilt/generators/vite/generators.star +43 -0
  196. package/engine/topologies/tilt/generators/vite/helpers.star +244 -0
  197. package/engine/topologies/tilt/generators/vite/library.star +65 -0
  198. package/engine/topologies/tilt/generators/vite/sdk.star +73 -0
  199. package/engine/topologies/tilt/generators/vite/templates.star +737 -0
  200. package/engine/topologies/tilt/generators/vite_config.star +22 -0
  201. package/engine/topologies/tilt/manifest/AGENTS.md +61 -0
  202. package/engine/topologies/tilt/manifest/README.md +693 -0
  203. package/engine/topologies/tilt/manifest/__init__.star +218 -0
  204. package/engine/topologies/tilt/manifest/constants.star +252 -0
  205. package/engine/topologies/tilt/manifest/errors.star +266 -0
  206. package/engine/topologies/tilt/manifest/integration.star +339 -0
  207. package/engine/topologies/tilt/manifest/json_to_yaml.py +54 -0
  208. package/engine/topologies/tilt/manifest/loader.star +214 -0
  209. package/engine/topologies/tilt/manifest/mapper.star +227 -0
  210. package/engine/topologies/tilt/manifest/parser.star +400 -0
  211. package/engine/topologies/tilt/manifest/schema.star +462 -0
  212. package/engine/topologies/tilt/manifest/tests/test_integration.star +276 -0
  213. package/engine/topologies/tilt/manifest/tests/test_loader_parser.star +397 -0
  214. package/engine/topologies/tilt/manifest/tests/test_manifest.star +316 -0
  215. package/engine/topologies/tilt/manifest/tests/test_validator.star +470 -0
  216. package/engine/topologies/tilt/manifest/validator.star +717 -0
  217. package/engine/topologies/tilt/manifest/yaml_to_json.py +18 -0
  218. package/engine/topologies/tilt/resources/AGENTS.md +71 -0
  219. package/engine/topologies/tilt/resources/conditions.star +3 -0
  220. package/engine/topologies/tilt/resources/databases.star +244 -0
  221. package/engine/topologies/tilt/resources/declaration.star +3 -0
  222. package/engine/topologies/tilt/resources/deps.star +3 -0
  223. package/engine/topologies/tilt/resources/infra-loader.star +437 -0
  224. package/engine/topologies/tilt/resources/libs.star +30 -0
  225. package/engine/topologies/tilt/resources/libs_discovery.star +102 -0
  226. package/engine/topologies/tilt/resources/libs_paths.star +79 -0
  227. package/engine/topologies/tilt/resources/libs_resource_definition.star +151 -0
  228. package/engine/topologies/tilt/resources/libs_setup.star +164 -0
  229. package/engine/topologies/tilt/resources/libs_tsconfig.star +37 -0
  230. package/engine/topologies/tilt/resources/orchestrator/apply.star +77 -0
  231. package/engine/topologies/tilt/resources/orchestrator/apply_compose_resource_registration.star +431 -0
  232. package/engine/topologies/tilt/resources/orchestrator/apply_manifest_orchestration.star +81 -0
  233. package/engine/topologies/tilt/resources/orchestrator/apply_migrator_orchestration.star +148 -0
  234. package/engine/topologies/tilt/resources/orchestrator/apply_resource_validation.star +36 -0
  235. package/engine/topologies/tilt/resources/orchestrator/apply_runtime_flags.star +44 -0
  236. package/engine/topologies/tilt/resources/orchestrator/builders/typescript.star +164 -0
  237. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/AGENTS.md +75 -0
  238. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/index.star +21 -0
  239. package/engine/topologies/tilt/resources/orchestrator/generators/dependencies/resolver.star +134 -0
  240. package/engine/topologies/tilt/resources/orchestrator/generators/env.star +258 -0
  241. package/engine/topologies/tilt/resources/orchestrator/generators/frontend.star +169 -0
  242. package/engine/topologies/tilt/resources/orchestrator/generators/manifest_resource.star +524 -0
  243. package/engine/topologies/tilt/resources/orchestrator/helpers.star +33 -0
  244. package/engine/topologies/tilt/resources/orchestrator.star +54 -0
  245. package/engine/topologies/tilt/resources/ordering.star +3 -0
  246. package/engine/topologies/tilt/resources/triggers.star +3 -0
  247. package/engine/topologies/tilt/resources/watchers.star +299 -0
  248. package/engine/where-things-live.star +717 -0
  249. package/ext/Tiltfile +66 -0
  250. package/ext/ide-components/README.md +219 -0
  251. package/ext/ide-components/code_executor/server.py +268 -0
  252. package/ext/ide-components/code_viewer/server.py +206 -0
  253. package/ext/ide-components/config_inspector/server.py +1050 -0
  254. package/ext/ide-components/file_browser/server.py +285 -0
  255. package/ext/ide-components/shared/config_service.py +469 -0
  256. package/ext/ide-components/shared/file_utils.py +298 -0
  257. package/ext/ide-components/shared/http_utils.py +232 -0
  258. package/ext/ide-components/shared/static/styles.css +1334 -0
  259. package/ext/ide-components/shared/syntax_highlighter.py +140 -0
  260. package/ext/ide-components/shared/template_engine.py +123 -0
  261. package/ext/ide-components/shared/templates/base.html +121 -0
  262. package/ext/ide-components/shared/test_config_service.py +326 -0
  263. package/ext/ide-components/shared/tilt_integration.py +158 -0
  264. package/ext/ui-enhancements/cron-status-server.sh +49 -0
  265. package/ext/ui-enhancements/cron-status-tracker.sh +146 -0
  266. package/ext/ui-enhancements/extension.yaml +36 -0
  267. package/ext/ui-enhancements/tiltfile.py +99 -0
  268. package/ext/ui-enhancements/ui/cron-jobs-tab.css +396 -0
  269. package/ext/ui-enhancements/ui/help-panel.css +279 -0
  270. package/ext/ui-enhancements/ui/icons.css +125 -0
  271. package/ext/ui-enhancements/ui/tooltips.css +114 -0
  272. package/package.json +13 -9
  273. package/specs/specs/TILT_SERVICE_DEFAULTS.star +205 -0
  274. package/specs/specs/TILT_TECH_STACK.star +159 -0
@@ -0,0 +1,71 @@
1
+ # === INLINED CONSTANTS for pure extension loading ===
2
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
3
+ # === END INLINED CONSTANTS ===
4
+
5
+
6
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
7
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
8
+
9
+
10
+ # =============================================================================
11
+ # Backend Library TSConfig Generator (no JSX)
12
+ # =============================================================================
13
+
14
+ def generate_backend_library_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True):
15
+ """
16
+ Generate tsconfig for backend shared libraries (no JSX).
17
+
18
+ Args:
19
+ resource_path: Path to the resource directory
20
+ write_fn: Write function for file output
21
+ internal_deps: Optional internal dependencies map
22
+ is_docker: Whether generating for Docker context
23
+
24
+ Returns:
25
+ dict: Generated tsconfig content
26
+ """
27
+ base_url = "." if is_docker else ".."
28
+ out_dir = "./dist" if is_docker else "../dist"
29
+ include_src = "src" if is_docker else "../src"
30
+ exclude_prefix = "" if is_docker else "../"
31
+ paths = {
32
+ "@/*": ["./src/*"],
33
+ "@application/*": ["./src/application/*"],
34
+ "@domain/*": ["./src/domain/*"],
35
+ "@infrastructure/*": ["./src/infrastructure/*"],
36
+ "@presentation/*": ["./src/presentation/*"],
37
+ }
38
+ # NOTE: Do not add internal workspace path mappings for libraries.
39
+ # These mappings pull external sources into the program and break
40
+ # library builds that compile with `--rootDir src`.
41
+ content = {
42
+ "compilerOptions": {
43
+ "target": "ES2022",
44
+ "module": "ES2022",
45
+ "moduleResolution": "node",
46
+ "baseUrl": base_url,
47
+ "declaration": True,
48
+ "declarationMap": True,
49
+ "outDir": out_dir,
50
+ "paths": paths,
51
+ "skipLibCheck": True,
52
+ "strict": True,
53
+ "emitDecoratorMetadata": True,
54
+ "experimentalDecorators": True,
55
+ "esModuleInterop": True,
56
+ "forceConsistentCasingInFileNames": True
57
+ },
58
+ "exclude": [
59
+ exclude_prefix + "node_modules",
60
+ exclude_prefix + "dist",
61
+ exclude_prefix + "__tests__/**/*",
62
+ exclude_prefix + "**/*.test.ts",
63
+ exclude_prefix + "**/*.test.tsx",
64
+ exclude_prefix + "**/tests/**",
65
+ ],
66
+ "include": [include_src + "/**/*"]
67
+ }
68
+ if is_docker:
69
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(content))
70
+ else:
71
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,124 @@
1
+ # === INLINED CONSTANTS for pure extension loading ===
2
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
3
+ # === END INLINED CONSTANTS ===
4
+
5
+
6
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
7
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
8
+
9
+
10
+ # =============================================================================
11
+ # Backend TSConfig Generator
12
+ # =============================================================================
13
+
14
+ def generate_backend_tsconfig(resource_path, prisma_path, write_fn, internal_deps=None, is_docker=True):
15
+ """
16
+ Generate tsconfig for backend services.
17
+
18
+ Args:
19
+ resource_path: Path to the service directory
20
+ prisma_path: Path to Prisma client
21
+ write_fn: Write function for file output
22
+ internal_deps: Optional internal dependencies map
23
+ is_docker: Whether generating for Docker context
24
+ """
25
+ # When tsconfig is in .autogenerated/ folder, paths are relative to parent
26
+ paths = {
27
+ "@/*": ["../src/*"],
28
+ "@application/*": ["../src/application/*"],
29
+ "@domain/*": ["../src/domain/*"],
30
+ "@infrastructure/*": ["../src/infrastructure/*"],
31
+ "@presentation/*": ["../src/presentation/*"],
32
+ "@prisma/client": [prisma_path]
33
+ }
34
+ root_dir = "../src"
35
+ if internal_deps and not is_docker:
36
+ sorted_deps = sorted(internal_deps.items())
37
+ depth = len([segment for segment in resource_path.split('/') if segment])
38
+ rel_to_root = "../" * depth
39
+ for pkg_name, src_path in sorted_deps:
40
+ paths[pkg_name] = [rel_to_root + src_path + "/src"]
41
+ paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
42
+ compiler_options = {
43
+ "target": "ES2022",
44
+ "module": "ES2022",
45
+ "moduleResolution": "bundler",
46
+ "paths": paths,
47
+ "skipLibCheck": True,
48
+ "strict": True,
49
+ "experimentalDecorators": True,
50
+ "emitDecoratorMetadata": True,
51
+ "esModuleInterop": True,
52
+ "forceConsistentCasingInFileNames": True,
53
+ "resolveJsonModule": True,
54
+ "allowSyntheticDefaultImports": True,
55
+ "outDir": "../dist",
56
+ "rootDir": root_dir,
57
+ "types": ["node"],
58
+ }
59
+ content = {
60
+ "compilerOptions": compiler_options,
61
+ "exclude": [
62
+ "node_modules",
63
+ "dist",
64
+ "../__tests__/**/*",
65
+ "../**/*.test.ts",
66
+ "../**/tests/**/*",
67
+ "../src/legacy/**/*",
68
+ "../**/*.steps.ts",
69
+ "../**/*.spec.ts"
70
+ ],
71
+ "include": ["../src/**/*"]
72
+ }
73
+ if is_docker:
74
+ # Docker tsconfig is copied to service root, so paths are relative to root
75
+ docker_paths = {
76
+ "@/*": ["./src/*"],
77
+ "@application/*": ["./src/application/*"],
78
+ "@domain/*": ["./src/domain/*"],
79
+ "@infrastructure/*": ["./src/infrastructure/*"],
80
+ "@presentation/*": ["./src/presentation/*"],
81
+ "@prisma/client": [prisma_path]
82
+ }
83
+ docker_root_dir = "./src"
84
+ if internal_deps:
85
+ sorted_deps = sorted(internal_deps.items())
86
+ depth = len([segment for segment in resource_path.split('/') if segment])
87
+ rel_to_root = "../" * depth
88
+ for pkg_name, src_path in sorted_deps:
89
+ docker_paths[pkg_name] = [rel_to_root + src_path + "/src"]
90
+ docker_paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
91
+ docker_compiler_options = {
92
+ "target": "ES2022",
93
+ "module": "ES2022",
94
+ "moduleResolution": "bundler",
95
+ "paths": docker_paths,
96
+ "skipLibCheck": True,
97
+ "strict": True,
98
+ "experimentalDecorators": True,
99
+ "emitDecoratorMetadata": True,
100
+ "esModuleInterop": True,
101
+ "forceConsistentCasingInFileNames": True,
102
+ "resolveJsonModule": True,
103
+ "allowSyntheticDefaultImports": True,
104
+ "outDir": "./dist",
105
+ "rootDir": docker_root_dir,
106
+ "types": ["node"],
107
+ }
108
+ docker_content = {
109
+ "compilerOptions": docker_compiler_options,
110
+ "exclude": [
111
+ "node_modules",
112
+ "dist",
113
+ "./__tests__/**/*",
114
+ "./**/*.test.ts",
115
+ "./**/tests/**/*",
116
+ "./src/legacy/**/*",
117
+ "./**/*.steps.ts",
118
+ "./**/*.spec.ts"
119
+ ],
120
+ "include": ["./src/**/*"]
121
+ }
122
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(docker_content))
123
+ else:
124
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,7 @@
1
+ # =============================================================================
2
+ # Common helpers/constants for TSConfig providers
3
+ # =============================================================================
4
+
5
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
6
+
7
+ # Add any shared helpers/constants here as needed.
@@ -0,0 +1,76 @@
1
+ # === INLINED CONSTANTS for pure extension loading ===
2
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
3
+ # === END INLINED CONSTANTS ===
4
+
5
+
6
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
7
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
8
+
9
+
10
+ # =============================================================================
11
+ # Frontend Library TSConfig Generator (with JSX)
12
+ # =============================================================================
13
+
14
+ def generate_frontend_library_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True):
15
+ """
16
+ Generate tsconfig for frontend shared libraries (with JSX support).
17
+
18
+ Args:
19
+ resource_path: Path to the resource directory
20
+ write_fn: Write function for file output
21
+ internal_deps: Optional internal dependencies map
22
+ is_docker: Whether generating for Docker context
23
+
24
+ Returns:
25
+ dict: Generated tsconfig content
26
+ """
27
+ base_url = "." if is_docker else ".."
28
+ out_dir = "./dist" if is_docker else "../dist"
29
+ include_src = "src" if is_docker else "../src"
30
+ exclude_prefix = "" if is_docker else "../"
31
+ paths = {
32
+ "@/*": ["./src/*"],
33
+ "@application/*": ["./src/application/*"],
34
+ "@domain/*": ["./src/domain/*"],
35
+ "@infrastructure/*": ["./src/infrastructure/*"],
36
+ "@presentation/*": ["./src/presentation/*"],
37
+ }
38
+ # NOTE: Do not add internal workspace path mappings for libraries.
39
+ # These mappings pull external sources into the program and break
40
+ # library builds that compile with `--rootDir src`.
41
+ content = {
42
+ "compilerOptions": {
43
+ "target": "ES2022",
44
+ "module": "ESNext",
45
+ "moduleResolution": "bundler",
46
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
47
+ "baseUrl": base_url,
48
+ "outDir": out_dir,
49
+ "rootDir": "src" if is_docker else "../src",
50
+ "paths": paths,
51
+ "skipLibCheck": True,
52
+ "strict": True,
53
+ "emitDecoratorMetadata": True,
54
+ "experimentalDecorators": True,
55
+ "esModuleInterop": True,
56
+ "forceConsistentCasingInFileNames": True,
57
+ "jsx": "react-jsx",
58
+ "allowSyntheticDefaultImports": True,
59
+ "resolveJsonModule": True
60
+ },
61
+ "exclude": [
62
+ exclude_prefix + "node_modules",
63
+ exclude_prefix + "dist",
64
+ exclude_prefix + "__tests__/**/*",
65
+ exclude_prefix + "**/*.test.ts",
66
+ exclude_prefix + "**/*.test.tsx",
67
+ exclude_prefix + "**/tests/**",
68
+ exclude_prefix + "**/*.stories.ts",
69
+ exclude_prefix + "**/*.stories.tsx",
70
+ ],
71
+ "include": [include_src + "/**/*", include_src + "/**/*.tsx"]
72
+ }
73
+ if is_docker:
74
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker'], Utils.encode_json(content))
75
+ else:
76
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local'], Utils.encode_json(content))
@@ -0,0 +1,110 @@
1
+ # === INLINED CONSTANTS for pure extension loading ===
2
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
3
+ # === END INLINED CONSTANTS ===
4
+
5
+
6
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
7
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
8
+
9
+
10
+ # Check if verbose mode is enabled
11
+ _is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
12
+
13
+ # Module loaded - only show in verbose mode
14
+ if _is_verbose:
15
+ print("🔥 frontend_tsconfig.star MODULE LOADED")
16
+
17
+ # =============================================================================
18
+ # Frontend TSConfig Generator
19
+ # =============================================================================
20
+
21
+ def generate_frontend_tsconfig(resource_path, write_fn, internal_deps=None, is_docker=True):
22
+ """
23
+ Generate tsconfig for frontend services.
24
+
25
+ Args:
26
+ resource_path: Path to the service directory
27
+ write_fn: Write function for file output
28
+ internal_deps: Optional internal dependencies map
29
+ is_docker: Whether generating for Docker context
30
+ """
31
+ # Check verbose mode
32
+ is_verbose = os.environ.get('TILT_LOG_LEVEL') == 'verbose'
33
+
34
+ # DEBUG: Only print when function is called in verbose mode
35
+ if is_verbose:
36
+ print("🎯 TSConfig.frontend called: service={}, is_docker={}, has_internal_deps={}".format(
37
+ resource_path,
38
+ is_docker,
39
+ internal_deps != None
40
+ ))
41
+ # When tsconfig is in .autogenerated/ folder, paths are relative to parent
42
+ paths = {
43
+ "@/*": ["../src/*"],
44
+ "@/autogenerated/*": ["./.autogenerated/*"]
45
+ }
46
+ include_paths = ["../src/**/*"]
47
+
48
+ # =============================================================================
49
+ # CRITICAL FIX: Only add path aliases for internal deps in LOCAL builds
50
+ # =============================================================================
51
+ # In Docker builds, these path aliases cause "Module not found" errors
52
+ # because the source files aren't copied to the Docker context.
53
+ #
54
+ # Docker builds should resolve from node_modules instead.
55
+ # =============================================================================
56
+
57
+ if internal_deps and not is_docker:
58
+ # LOCAL BUILD: Can use path aliases to source for faster development
59
+ sorted_deps = sorted(internal_deps.items())
60
+ for pkg_name, src_path in sorted_deps:
61
+ depth = len([segment for segment in resource_path.split('/') if segment])
62
+ rel_to_root = "../" * depth
63
+ paths[pkg_name] = [rel_to_root + src_path + "/src"]
64
+ paths[pkg_name + "/*"] = [rel_to_root + src_path + "/src/*"]
65
+
66
+ # If is_docker=True and internal_deps exist, warn about it
67
+ if internal_deps and is_docker:
68
+ if is_verbose:
69
+ print("📝 Note: Excluding {} path aliases from Docker tsconfig for {}".format(
70
+ len(internal_deps),
71
+ resource_path
72
+ ))
73
+ print(" Docker build will resolve @{npm_scope}/* from node_modules")
74
+ content = {
75
+ "compilerOptions": {
76
+ "target": "ES2022",
77
+ "module": "ES2022",
78
+ "moduleResolution": "node",
79
+ "lib": ["dom", "dom.iterable", "esnext"],
80
+ "jsx": "react-jsx",
81
+ "paths": paths,
82
+ "skipLibCheck": True,
83
+ "strict": True,
84
+ "types": ["node"],
85
+ },
86
+ "exclude": [
87
+ "node_modules",
88
+ "dist",
89
+ "../__tests__/**/*",
90
+ "../**/*.test.ts",
91
+ "../**/tests/**/*",
92
+ "../**/*.steps.ts",
93
+ "../**/*.spec.ts"
94
+ ],
95
+ "include": include_paths
96
+ }
97
+ if is_docker:
98
+ output_path = resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_docker']
99
+ if is_verbose:
100
+ print("📝 DEBUG: Writing Docker tsconfig to: {}".format(output_path))
101
+ write_fn(output_path, Utils.encode_json(content))
102
+ if is_verbose:
103
+ print("📝 DEBUG: Docker tsconfig write complete")
104
+ else:
105
+ output_path = resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['tsconfig_local']
106
+ if is_verbose:
107
+ print("📝 DEBUG: Writing Local tsconfig to: {}".format(output_path))
108
+ write_fn(output_path, Utils.encode_json(content))
109
+
110
+ DEBUG = {}
@@ -0,0 +1,23 @@
1
+ # =============================================================================
2
+ # Entry point for modular TSConfig provider
3
+ # =============================================================================
4
+
5
+ load("./backend_tsconfig.star", "generate_backend_tsconfig")
6
+ load("./frontend_tsconfig.star", "generate_frontend_tsconfig")
7
+ load("./prisma_config.star", "generate_prisma_config")
8
+ load("./frontend_library_tsconfig.star", "generate_frontend_library_tsconfig")
9
+ load("./backend_library_tsconfig.star", "generate_backend_library_tsconfig")
10
+ load("./playwright_config.star", "generate_playwright_config")
11
+
12
+ # =============================================================================
13
+ # TSConfig Struct - Public API
14
+ # =============================================================================
15
+
16
+ TSConfig = struct(
17
+ backend = generate_backend_tsconfig,
18
+ frontend = generate_frontend_tsconfig,
19
+ library_backend = generate_backend_library_tsconfig,
20
+ library_frontend = generate_frontend_library_tsconfig,
21
+ prisma = generate_prisma_config,
22
+ playwright = generate_playwright_config,
23
+ )
@@ -0,0 +1,40 @@
1
+ # =============================================================================
2
+ # 🎭 TILT SDK - PLAYWRIGHT CONFIG GENERATOR (free-tier stub)
3
+ # =============================================================================
4
+ # Path: .tilt/providers/typescript/playwright_config.star
5
+ # =============================================================================
6
+ # The real generator is part of a paid TDK license. When a valid license
7
+ # grants the "playwright" resource, cli/src/generator/template-engine.ts
8
+ # (vendorTdkExtension) overwrites this file with the licensed version
9
+ # fetched via extension-fetch.ts before Tilt loads it. Same function
10
+ # signature either way, so nothing else in the generator pipeline changes.
11
+ # =============================================================================
12
+
13
+ load('../../../../topologies/tilt/common/utils.star', 'Utils')
14
+ load('../../../../topologies/tilt/manifest/constants.star', 'GENERATED_CONFIG_FILENAMES')
15
+
16
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
17
+
18
+ _STUB_NOTICE = """// Playwright e2e config generation is a paid TDK feature.
19
+ // Run `tdk upgrade` to enable generated Playwright configs for this service.
20
+ """
21
+
22
+
23
+ def generate_playwright_config(resource_path, resource_type='backend', write_fn=None):
24
+ """
25
+ Free-tier stub - see module header. Signature matches the licensed
26
+ implementation so callers never need to know which one is active.
27
+ """
28
+ resource_name = resource_path.split('/')[-1]
29
+ header = Utils.get_template_header(
30
+ GENERATED_CONFIG_FILENAMES['playwright'],
31
+ 'TypeScript.generate_playwright_config() [unlicensed stub]',
32
+ resource_name,
33
+ resource_type.upper()
34
+ )
35
+ content = header + _STUB_NOTICE
36
+
37
+ if write_fn:
38
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['playwright'], content)
39
+
40
+ return content
@@ -0,0 +1,49 @@
1
+ # === INLINED CONSTANTS for pure extension loading ===
2
+ OUTPUT = struct(AUTOGENERATED_FOLDER = ".autogenerated")
3
+ # === END INLINED CONSTANTS ===
4
+
5
+
6
+ load("../../../../topologies/tilt/common/utils.star", "Utils")
7
+ load("../../../../topologies/tilt/manifest/constants.star", "GENERATED_CONFIG_FILENAMES")
8
+
9
+
10
+ # =============================================================================
11
+ # Prisma Config Generator
12
+ # =============================================================================
13
+
14
+ def generate_prisma_config(resource_path, resource_name, db_name, write_fn):
15
+ """
16
+ Generate prisma.config.autogenerated.ts for Prisma v7 CLI configuration.
17
+
18
+ Args:
19
+ resource_path: Path to the resource directory
20
+ resource_name: Name of the resource
21
+ db_name: Name of the database
22
+ write_fn: Write function for file output
23
+
24
+ Returns:
25
+ str: Generated Prisma config content
26
+ """
27
+ resource_display_name = resource_name
28
+
29
+ header = Utils.get_template_header(
30
+ GENERATED_CONFIG_FILENAMES['prisma'],
31
+ 'TypeScript.prisma()',
32
+ resource_display_name,
33
+ 'Prisma Configuration'
34
+ )
35
+ content = """/**
36
+ * AUTOGENERATED Prisma CLI Configuration - %s Service
37
+ *
38
+ * This config is used by Prisma CLI commands (generate, migrate, db push).
39
+ */
40
+ export default {
41
+ schema: 'prisma/schema.prisma',
42
+ datasource: {
43
+ url: process.env.DATABASE_URL,
44
+ },
45
+ };
46
+ """ % (resource_name)
47
+
48
+ if write_fn:
49
+ write_fn(resource_path + '/' + OUTPUT.AUTOGENERATED_FOLDER + '/' + GENERATED_CONFIG_FILENAMES['prisma'], content)