@ankhorage/studio 0.0.20 → 0.1.0

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 (211) hide show
  1. package/README.md +1 -2
  2. package/dist/cli/index.d.ts +4 -4
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +81 -56
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/core/constants.d.ts.map +1 -1
  7. package/dist/core/constants.js +17 -6
  8. package/dist/core/constants.js.map +1 -1
  9. package/dist/hooks/useProjects.js +1 -1
  10. package/dist/hooks/useProjects.js.map +1 -1
  11. package/dist/host/createStudioHost.d.ts +13 -0
  12. package/dist/host/createStudioHost.d.ts.map +1 -0
  13. package/dist/host/createStudioHost.js +16 -0
  14. package/dist/host/createStudioHost.js.map +1 -0
  15. package/dist/host/http/security.d.ts +2 -0
  16. package/dist/host/http/security.d.ts.map +1 -0
  17. package/dist/host/http/security.js +55 -0
  18. package/dist/host/http/security.js.map +1 -0
  19. package/dist/host/http/server.d.ts +16 -0
  20. package/dist/host/http/server.d.ts.map +1 -0
  21. package/dist/host/http/server.js +549 -0
  22. package/dist/host/http/server.js.map +1 -0
  23. package/dist/host/layout/auth/resolveAuthLayoutPlan.d.ts +38 -0
  24. package/dist/host/layout/auth/resolveAuthLayoutPlan.d.ts.map +1 -0
  25. package/dist/host/layout/auth/resolveAuthLayoutPlan.js +262 -0
  26. package/dist/host/layout/auth/resolveAuthLayoutPlan.js.map +1 -0
  27. package/dist/host/layout/layoutGenerator.d.ts +19 -0
  28. package/dist/host/layout/layoutGenerator.d.ts.map +1 -0
  29. package/dist/host/layout/layoutGenerator.js +418 -0
  30. package/dist/host/layout/layoutGenerator.js.map +1 -0
  31. package/dist/host/layout/templates/auth/adapter.d.ts +6 -0
  32. package/dist/host/layout/templates/auth/adapter.d.ts.map +1 -0
  33. package/dist/host/layout/templates/auth/adapter.js +94 -0
  34. package/dist/host/layout/templates/auth/adapter.js.map +1 -0
  35. package/dist/host/layout/templates/auth/screen.d.ts +12 -0
  36. package/dist/host/layout/templates/auth/screen.d.ts.map +1 -0
  37. package/dist/host/layout/templates/auth/screen.js +648 -0
  38. package/dist/host/layout/templates/auth/screen.js.map +1 -0
  39. package/dist/host/layout/templates/auth/session.d.ts +2 -0
  40. package/dist/host/layout/templates/auth/session.d.ts.map +1 -0
  41. package/dist/host/layout/templates/auth/session.js +326 -0
  42. package/dist/host/layout/templates/auth/session.js.map +1 -0
  43. package/dist/host/layout/templates/auth/signOut.d.ts +2 -0
  44. package/dist/host/layout/templates/auth/signOut.d.ts.map +1 -0
  45. package/dist/host/layout/templates/auth/signOut.js +43 -0
  46. package/dist/host/layout/templates/auth/signOut.js.map +1 -0
  47. package/dist/host/layout/templates/index.d.ts +11 -0
  48. package/dist/host/layout/templates/index.d.ts.map +1 -0
  49. package/dist/host/layout/templates/index.js +10 -0
  50. package/dist/host/layout/templates/index.js.map +1 -0
  51. package/dist/host/layout/templates/navigation.d.ts +16 -0
  52. package/dist/host/layout/templates/navigation.d.ts.map +1 -0
  53. package/dist/host/layout/templates/navigation.js +332 -0
  54. package/dist/host/layout/templates/navigation.js.map +1 -0
  55. package/dist/host/layout/templates/nestedLayout.d.ts +7 -0
  56. package/dist/host/layout/templates/nestedLayout.d.ts.map +1 -0
  57. package/dist/host/layout/templates/nestedLayout.js +56 -0
  58. package/dist/host/layout/templates/nestedLayout.js.map +1 -0
  59. package/dist/host/layout/templates/redirect.d.ts +2 -0
  60. package/dist/host/layout/templates/redirect.d.ts.map +1 -0
  61. package/dist/host/layout/templates/redirect.js +10 -0
  62. package/dist/host/layout/templates/redirect.js.map +1 -0
  63. package/dist/host/layout/templates/rootLayout.d.ts +28 -0
  64. package/dist/host/layout/templates/rootLayout.d.ts.map +1 -0
  65. package/dist/host/layout/templates/rootLayout.js +507 -0
  66. package/dist/host/layout/templates/rootLayout.js.map +1 -0
  67. package/dist/host/layout/templates/screen.d.ts +6 -0
  68. package/dist/host/layout/templates/screen.d.ts.map +1 -0
  69. package/dist/host/layout/templates/screen.js +94 -0
  70. package/dist/host/layout/templates/screen.js.map +1 -0
  71. package/dist/host/layout/templates/utils/routes.d.ts +3 -0
  72. package/dist/host/layout/templates/utils/routes.d.ts.map +1 -0
  73. package/dist/host/layout/templates/utils/routes.js +15 -0
  74. package/dist/host/layout/templates/utils/routes.js.map +1 -0
  75. package/dist/host/layout/templates/utils/strings.d.ts +3 -0
  76. package/dist/host/layout/templates/utils/strings.d.ts.map +1 -0
  77. package/dist/host/layout/templates/utils/strings.js +7 -0
  78. package/dist/host/layout/templates/utils/strings.js.map +1 -0
  79. package/dist/host/layout/utils/escapeStringLiteral.d.ts +2 -0
  80. package/dist/host/layout/utils/escapeStringLiteral.d.ts.map +1 -0
  81. package/dist/host/layout/utils/escapeStringLiteral.js +8 -0
  82. package/dist/host/layout/utils/escapeStringLiteral.js.map +1 -0
  83. package/dist/host/manifestSystem/auth/index.d.ts +2 -0
  84. package/dist/host/manifestSystem/auth/index.d.ts.map +1 -0
  85. package/dist/host/manifestSystem/auth/index.js +2 -0
  86. package/dist/host/manifestSystem/auth/index.js.map +1 -0
  87. package/dist/host/manifestSystem/auth/shared/global.auth.system.tpl.d.ts +4 -0
  88. package/dist/host/manifestSystem/auth/shared/global.auth.system.tpl.d.ts.map +1 -0
  89. package/dist/host/manifestSystem/auth/shared/global.auth.system.tpl.js +7 -0
  90. package/dist/host/manifestSystem/auth/shared/global.auth.system.tpl.js.map +1 -0
  91. package/dist/host/manifestSystem/auth/shared/index.d.ts +3 -0
  92. package/dist/host/manifestSystem/auth/shared/index.d.ts.map +1 -0
  93. package/dist/host/manifestSystem/auth/shared/index.js +8 -0
  94. package/dist/host/manifestSystem/auth/shared/index.js.map +1 -0
  95. package/dist/host/manifestSystem/index.d.ts +5 -0
  96. package/dist/host/manifestSystem/index.d.ts.map +1 -0
  97. package/dist/host/manifestSystem/index.js +23 -0
  98. package/dist/host/manifestSystem/index.js.map +1 -0
  99. package/dist/host/manifestSystem/types.d.ts +8 -0
  100. package/dist/host/manifestSystem/types.d.ts.map +1 -0
  101. package/dist/host/manifestSystem/types.js +2 -0
  102. package/dist/host/manifestSystem/types.js.map +1 -0
  103. package/dist/host/modules/catalog.d.ts +40 -0
  104. package/dist/host/modules/catalog.d.ts.map +1 -0
  105. package/dist/host/modules/catalog.js +112 -0
  106. package/dist/host/modules/catalog.js.map +1 -0
  107. package/dist/host/modules/layout.d.ts +7 -0
  108. package/dist/host/modules/layout.d.ts.map +1 -0
  109. package/dist/host/modules/layout.js +2 -0
  110. package/dist/host/modules/layout.js.map +1 -0
  111. package/dist/host/modules/runtime/LocalFsTargetAdapter.d.ts +34 -0
  112. package/dist/host/modules/runtime/LocalFsTargetAdapter.d.ts.map +1 -0
  113. package/dist/host/modules/runtime/LocalFsTargetAdapter.js +85 -0
  114. package/dist/host/modules/runtime/LocalFsTargetAdapter.js.map +1 -0
  115. package/dist/host/orchestrator/generatedAppFiles.d.ts +8 -0
  116. package/dist/host/orchestrator/generatedAppFiles.d.ts.map +1 -0
  117. package/dist/host/orchestrator/generatedAppFiles.js +125 -0
  118. package/dist/host/orchestrator/generatedAppFiles.js.map +1 -0
  119. package/dist/host/orchestrator/generatedRouteCleanup.d.ts +5 -0
  120. package/dist/host/orchestrator/generatedRouteCleanup.d.ts.map +1 -0
  121. package/dist/host/orchestrator/generatedRouteCleanup.js +117 -0
  122. package/dist/host/orchestrator/generatedRouteCleanup.js.map +1 -0
  123. package/dist/host/orchestrator/infraGenerator.d.ts +35 -0
  124. package/dist/host/orchestrator/infraGenerator.d.ts.map +1 -0
  125. package/dist/host/orchestrator/infraGenerator.js +135 -0
  126. package/dist/host/orchestrator/infraGenerator.js.map +1 -0
  127. package/dist/host/orchestrator/infraRuntime.d.ts +38 -0
  128. package/dist/host/orchestrator/infraRuntime.d.ts.map +1 -0
  129. package/dist/host/orchestrator/infraRuntime.js +227 -0
  130. package/dist/host/orchestrator/infraRuntime.js.map +1 -0
  131. package/dist/host/orchestrator/infraValidation.d.ts +3 -0
  132. package/dist/host/orchestrator/infraValidation.d.ts.map +1 -0
  133. package/dist/host/orchestrator/infraValidation.js +59 -0
  134. package/dist/host/orchestrator/infraValidation.js.map +1 -0
  135. package/dist/host/orchestrator/moduleManager.d.ts +86 -0
  136. package/dist/host/orchestrator/moduleManager.d.ts.map +1 -0
  137. package/dist/host/orchestrator/moduleManager.js +312 -0
  138. package/dist/host/orchestrator/moduleManager.js.map +1 -0
  139. package/dist/host/orchestrator/projectDeletion.d.ts +27 -0
  140. package/dist/host/orchestrator/projectDeletion.d.ts.map +1 -0
  141. package/dist/host/orchestrator/projectDeletion.js +242 -0
  142. package/dist/host/orchestrator/projectDeletion.js.map +1 -0
  143. package/dist/host/orchestrator/projectManager.d.ts +87 -0
  144. package/dist/host/orchestrator/projectManager.d.ts.map +1 -0
  145. package/dist/host/orchestrator/projectManager.js +371 -0
  146. package/dist/host/orchestrator/projectManager.js.map +1 -0
  147. package/dist/host/orchestrator/projectPaths.d.ts +4 -0
  148. package/dist/host/orchestrator/projectPaths.d.ts.map +1 -0
  149. package/dist/host/orchestrator/projectPaths.js +25 -0
  150. package/dist/host/orchestrator/projectPaths.js.map +1 -0
  151. package/dist/host/orchestrator/projectStore.d.ts +24 -0
  152. package/dist/host/orchestrator/projectStore.d.ts.map +1 -0
  153. package/dist/host/orchestrator/projectStore.js +155 -0
  154. package/dist/host/orchestrator/projectStore.js.map +1 -0
  155. package/dist/host/orchestrator/resolveMutations.d.ts +3 -0
  156. package/dist/host/orchestrator/resolveMutations.d.ts.map +1 -0
  157. package/dist/host/orchestrator/resolveMutations.js +12 -0
  158. package/dist/host/orchestrator/resolveMutations.js.map +1 -0
  159. package/dist/host/orchestrator/scaffolder.d.ts +33 -0
  160. package/dist/host/orchestrator/scaffolder.d.ts.map +1 -0
  161. package/dist/host/orchestrator/scaffolder.js +246 -0
  162. package/dist/host/orchestrator/scaffolder.js.map +1 -0
  163. package/dist/host/orchestrator/templates.d.ts +83 -0
  164. package/dist/host/orchestrator/templates.d.ts.map +1 -0
  165. package/dist/host/orchestrator/templates.js +355 -0
  166. package/dist/host/orchestrator/templates.js.map +1 -0
  167. package/dist/host/orchestrator/workspaceRuntime.d.ts +2 -0
  168. package/dist/host/orchestrator/workspaceRuntime.d.ts.map +1 -0
  169. package/dist/host/orchestrator/workspaceRuntime.js +82 -0
  170. package/dist/host/orchestrator/workspaceRuntime.js.map +1 -0
  171. package/dist/host/templateRegistry/index.d.ts +16 -0
  172. package/dist/host/templateRegistry/index.d.ts.map +1 -0
  173. package/dist/host/templateRegistry/index.js +74 -0
  174. package/dist/host/templateRegistry/index.js.map +1 -0
  175. package/dist/host/utils/requirementsInference.d.ts +4 -0
  176. package/dist/host/utils/requirementsInference.d.ts.map +1 -0
  177. package/dist/host/utils/requirementsInference.js +49 -0
  178. package/dist/host/utils/requirementsInference.js.map +1 -0
  179. package/dist/host/utils/trimOutput.d.ts +7 -0
  180. package/dist/host/utils/trimOutput.d.ts.map +1 -0
  181. package/dist/host/utils/trimOutput.js +32 -0
  182. package/dist/host/utils/trimOutput.js.map +1 -0
  183. package/dist/host/utils/workspaceRoot.d.ts +2 -0
  184. package/dist/host/utils/workspaceRoot.d.ts.map +1 -0
  185. package/dist/host/utils/workspaceRoot.js +33 -0
  186. package/dist/host/utils/workspaceRoot.js.map +1 -0
  187. package/dist/host/zoraExtensions/index.d.ts +11 -0
  188. package/dist/host/zoraExtensions/index.d.ts.map +1 -0
  189. package/dist/host/zoraExtensions/index.js +54 -0
  190. package/dist/host/zoraExtensions/index.js.map +1 -0
  191. package/dist/runtime/appExtensionRegistry.d.ts +3 -0
  192. package/dist/runtime/appExtensionRegistry.d.ts.map +1 -0
  193. package/dist/runtime/appExtensionRegistry.js +8 -0
  194. package/dist/runtime/appExtensionRegistry.js.map +1 -0
  195. package/dist/runtime/index.d.ts +8 -4
  196. package/dist/runtime/index.d.ts.map +1 -1
  197. package/dist/runtime/index.js +8 -4
  198. package/dist/runtime/index.js.map +1 -1
  199. package/dist/runtime/registry.d.ts +7 -0
  200. package/dist/runtime/registry.d.ts.map +1 -0
  201. package/dist/runtime/registry.js +7 -0
  202. package/dist/runtime/registry.js.map +1 -0
  203. package/dist/runtime/runtimeActions.d.ts +19 -0
  204. package/dist/runtime/runtimeActions.d.ts.map +1 -0
  205. package/dist/runtime/runtimeActions.js +5 -0
  206. package/dist/runtime/runtimeActions.js.map +1 -0
  207. package/dist/runtime/useRuntimeAction.d.ts +10 -0
  208. package/dist/runtime/useRuntimeAction.d.ts.map +1 -0
  209. package/dist/runtime/useRuntimeAction.js +30 -0
  210. package/dist/runtime/useRuntimeAction.js.map +1 -0
  211. package/package.json +35 -3
@@ -0,0 +1,8 @@
1
+ export function escapeStringLiteral(value) {
2
+ return value
3
+ .replaceAll('\\', '\\\\')
4
+ .replaceAll("'", "\\'")
5
+ .replaceAll('\n', '\\n')
6
+ .replaceAll('\r', '\\r');
7
+ }
8
+ //# sourceMappingURL=escapeStringLiteral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapeStringLiteral.js","sourceRoot":"","sources":["../../../../src/host/layout/utils/escapeStringLiteral.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,KAAK;SACT,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;SACxB,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;SACtB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './shared';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/host/manifestSystem/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './shared';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/host/manifestSystem/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ export declare function supportsGlobalAuthSystemTemplate(manifest: AppManifest): boolean;
3
+ export declare function applyGlobalAuthSystemTemplate(manifest: AppManifest): AppManifest;
4
+ //# sourceMappingURL=global.auth.system.tpl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.auth.system.tpl.d.ts","sourceRoot":"","sources":["../../../../../src/host/manifestSystem/auth/shared/global.auth.system.tpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE/E;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAEhF"}
@@ -0,0 +1,7 @@
1
+ export function supportsGlobalAuthSystemTemplate(manifest) {
2
+ return manifest.infra.auth?.scope === 'global';
3
+ }
4
+ export function applyGlobalAuthSystemTemplate(manifest) {
5
+ return manifest;
6
+ }
7
+ //# sourceMappingURL=global.auth.system.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"global.auth.system.tpl.js","sourceRoot":"","sources":["../../../../../src/host/manifestSystem/auth/shared/global.auth.system.tpl.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,gCAAgC,CAAC,QAAqB;IACpE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAqB;IACjE,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ManifestSystemTemplate } from '../../types';
2
+ export declare const SYSTEM_TEMPLATE_AUTH_GLOBAL_DEFAULT: ManifestSystemTemplate;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/host/manifestSystem/auth/shared/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAM1D,eAAO,MAAM,mCAAmC,EAAE,sBAKjD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { applyGlobalAuthSystemTemplate, supportsGlobalAuthSystemTemplate, } from './global.auth.system.tpl';
2
+ export const SYSTEM_TEMPLATE_AUTH_GLOBAL_DEFAULT = {
3
+ id: 'auth.global.default',
4
+ description: 'Shared global auth defaults for generated sign-in and sign-up flows.',
5
+ applies: supportsGlobalAuthSystemTemplate,
6
+ apply: applyGlobalAuthSystemTemplate,
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/host/manifestSystem/auth/shared/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,mCAAmC,GAA2B;IACzE,EAAE,EAAE,qBAAqB;IACzB,WAAW,EAAE,sEAAsE;IACnF,OAAO,EAAE,gCAAgC;IACzC,KAAK,EAAE,6BAA6B;CACrC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ export * from './auth';
3
+ export * from './types';
4
+ export declare function applySystemTemplates(manifest: AppManifest): AppManifest;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/host/manifestSystem/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AASxD,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAIxB,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAmBvE"}
@@ -0,0 +1,23 @@
1
+ import { inferScreenRequirementsFromUi, mergeScreenRequirements, } from '../utils/requirementsInference';
2
+ import { SYSTEM_TEMPLATE_AUTH_GLOBAL_DEFAULT } from './auth';
3
+ export * from './auth';
4
+ export * from './types';
5
+ const SYSTEM_MANIFEST_TEMPLATES = [SYSTEM_TEMPLATE_AUTH_GLOBAL_DEFAULT];
6
+ export function applySystemTemplates(manifest) {
7
+ const enrichedManifest = SYSTEM_MANIFEST_TEMPLATES.reduce((currentManifest, template) => {
8
+ if (!template.applies(currentManifest)) {
9
+ return currentManifest;
10
+ }
11
+ return template.apply(currentManifest);
12
+ }, manifest);
13
+ // Return a new manifest with enriched screen requirements
14
+ return {
15
+ ...enrichedManifest,
16
+ screens: Object.fromEntries(Object.entries(enrichedManifest.screens).map(([id, screen]) => {
17
+ const inferred = inferScreenRequirementsFromUi(screen.root);
18
+ const merged = mergeScreenRequirements(screen.requires, inferred);
19
+ return [id, { ...screen, requires: merged }];
20
+ })),
21
+ };
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/host/manifestSystem/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,6BAA6B,EAC7B,uBAAuB,GACxB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,mCAAmC,EAAE,MAAM,QAAQ,CAAC;AAG7D,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,MAAM,yBAAyB,GAA6B,CAAC,mCAAmC,CAAC,CAAC;AAElG,MAAM,UAAU,oBAAoB,CAAC,QAAqB;IACxD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,QAAQ,EAAE,EAAE;QACtF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACvC,OAAO,eAAe,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEb,0DAA0D;IAC1D,OAAO;QACL,GAAG,gBAAgB;QACnB,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YAC5D,MAAM,QAAQ,GAAG,6BAA6B,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAClE,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,CACH;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ export interface ManifestSystemTemplate {
3
+ id: string;
4
+ description?: string;
5
+ applies: (manifest: AppManifest) => boolean;
6
+ apply: (manifest: AppManifest) => AppManifest;
7
+ }
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/host/manifestSystem/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,OAAO,CAAC;IAC5C,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,WAAW,CAAC;CAC/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/host/manifestSystem/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import type { AppManifest } from '@ankhorage/contracts';
2
+ import type { ModuleDefinition } from '@ankhorage/orchestrator';
3
+ import { type NormalizedExpoGoogleFontsModuleConfig } from '@ankhorage/orchestrator-module-expo-google-fonts';
4
+ import type { LayoutMutation } from './layout';
5
+ export interface HostManifest extends AppManifest {
6
+ infra: AppManifest['infra'] & {
7
+ modulesConfig?: Record<string, unknown>;
8
+ };
9
+ settings: AppManifest['settings'] & {
10
+ googleFonts?: NormalizedExpoGoogleFontsModuleConfig;
11
+ };
12
+ typography?: {
13
+ activeFontId?: string | null;
14
+ };
15
+ }
16
+ export interface HostModuleDefinition {
17
+ id: string;
18
+ name: string;
19
+ description: string;
20
+ definition: ModuleDefinition<Record<string, unknown>>;
21
+ normalizeConfig: (config: Record<string, unknown>) => Record<string, unknown>;
22
+ readStoredConfig: (manifest: HostManifest) => Record<string, unknown>;
23
+ applyManifestConfig: (manifest: HostManifest, config: Record<string, unknown>) => HostManifest;
24
+ layout?: LayoutMutation;
25
+ ui?: {
26
+ modal?: {
27
+ title: string;
28
+ };
29
+ };
30
+ proxyGet?: (path: string) => Promise<unknown>;
31
+ }
32
+ declare const localizationModule: HostModuleDefinition;
33
+ declare const googleFontsModule: HostModuleDefinition;
34
+ export declare const MODULE_CATALOG: {
35
+ [localizationModule.id]: HostModuleDefinition;
36
+ [googleFontsModule.id]: HostModuleDefinition;
37
+ };
38
+ export declare function listHostModules(): HostModuleDefinition[];
39
+ export {};
40
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/host/modules/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAGL,KAAK,qCAAqC,EAE3C,MAAM,kDAAkD,CAAC;AAO1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzC,CAAC;IACF,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG;QAClC,WAAW,CAAC,EAAE,qCAAqC,CAAC;KACrD,CAAC;IACF,UAAU,CAAC,EAAE;QACX,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9E,gBAAgB,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtE,mBAAmB,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,YAAY,CAAC;IAC/F,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,EAAE,CAAC,EAAE;QACH,KAAK,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3B,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAmCD,QAAA,MAAM,kBAAkB,EAAE,oBAiCzB,CAAC;AAEF,QAAA,MAAM,iBAAiB,EAAE,oBA6CxB,CAAC;AAEF,eAAO,MAAM,cAAc;IACzB,CAAC,kBAAkB,CAAC,EAAE,CAAC,uBAAoB;IAC3C,CAAC,iBAAiB,CAAC,EAAE,CAAC,uBAAmB;CACK,CAAC;AAEjD,wBAAgB,eAAe,IAAI,oBAAoB,EAAE,CAExD"}
@@ -0,0 +1,112 @@
1
+ import { EXPO_GOOGLE_FONTS_MODULE_ID, expoGoogleFontsModule, parseExpoGoogleFontsModuleConfig, } from '@ankhorage/orchestrator-module-expo-google-fonts';
2
+ import { EXPO_LOCALIZATION_MODULE_ID, expoLocalizationModule, parseExpoLocalizationModuleConfig, } from '@ankhorage/orchestrator-module-expo-localization';
3
+ const localizationLayout = {
4
+ imports: ['import { LocalizationModuleProvider } from "@/modules/localization";'],
5
+ hooks: [],
6
+ providerStart: ['<LocalizationModuleProvider>'],
7
+ providerEnd: ['</LocalizationModuleProvider>'],
8
+ };
9
+ const googleFontsLayout = {
10
+ imports: ['import { GoogleFontsProvider } from "@/modules/google-fonts";'],
11
+ hooks: [],
12
+ providerStart: ['<GoogleFontsProvider>'],
13
+ providerEnd: ['</GoogleFontsProvider>'],
14
+ };
15
+ function isHostManagedAction(action) {
16
+ return ((action.type === 'patch-text-block' && action.path === 'src/app/_layout.tsx') ||
17
+ (action.type === 'json-set' && action.path === 'ankh.config.json'));
18
+ }
19
+ function wrapHostManagedModule(definition) {
20
+ return {
21
+ ...definition,
22
+ async plan(context) {
23
+ const actions = await definition.plan(context);
24
+ return actions.filter((action) => !isHostManagedAction(action));
25
+ },
26
+ };
27
+ }
28
+ const localizationModule = {
29
+ id: EXPO_LOCALIZATION_MODULE_ID,
30
+ name: 'Localization (Expo)',
31
+ description: 'Multi-language support powered by expo-localization and i18next.',
32
+ definition: wrapHostManagedModule(expoLocalizationModule),
33
+ normalizeConfig(config) {
34
+ return parseExpoLocalizationModuleConfig(config);
35
+ },
36
+ readStoredConfig(manifest) {
37
+ const storedConfig = manifest.infra.modulesConfig?.[EXPO_LOCALIZATION_MODULE_ID];
38
+ if (isRecord(storedConfig)) {
39
+ return storedConfig;
40
+ }
41
+ return {
42
+ defaultLocale: manifest.settings.localization.defaultLocale,
43
+ locales: manifest.settings.localization.locales,
44
+ };
45
+ },
46
+ applyManifestConfig(manifest, config) {
47
+ const normalizedConfig = parseExpoLocalizationModuleConfig(config);
48
+ return {
49
+ ...manifest,
50
+ settings: {
51
+ ...manifest.settings,
52
+ localization: {
53
+ defaultLocale: normalizedConfig.defaultLocale,
54
+ locales: normalizedConfig.locales,
55
+ },
56
+ },
57
+ };
58
+ },
59
+ layout: localizationLayout,
60
+ };
61
+ const googleFontsModule = {
62
+ id: EXPO_GOOGLE_FONTS_MODULE_ID,
63
+ name: 'Google Fonts (Expo)',
64
+ description: 'Deterministic Google Fonts integration via @expo-google-fonts packages.',
65
+ definition: wrapHostManagedModule(expoGoogleFontsModule),
66
+ normalizeConfig(config) {
67
+ return { ...parseExpoGoogleFontsModuleConfig(config) };
68
+ },
69
+ readStoredConfig(manifest) {
70
+ const storedConfig = manifest.infra.modulesConfig?.[EXPO_GOOGLE_FONTS_MODULE_ID];
71
+ const baseConfig = isRecord(storedConfig)
72
+ ? storedConfig
73
+ : isRecord(manifest.settings.googleFonts)
74
+ ? manifest.settings.googleFonts
75
+ : {};
76
+ const activeFontId = typeof manifest.typography?.activeFontId === 'string'
77
+ ? manifest.typography.activeFontId
78
+ : undefined;
79
+ return {
80
+ ...parseExpoGoogleFontsModuleConfig(activeFontId === undefined ? baseConfig : { ...baseConfig, activeFontId }),
81
+ };
82
+ },
83
+ applyManifestConfig(manifest, config) {
84
+ const normalizedConfig = parseExpoGoogleFontsModuleConfig(config);
85
+ return {
86
+ ...manifest,
87
+ settings: {
88
+ ...manifest.settings,
89
+ googleFonts: normalizedConfig,
90
+ },
91
+ typography: {
92
+ ...manifest.typography,
93
+ activeFontId: normalizedConfig.activeFontId,
94
+ },
95
+ };
96
+ },
97
+ layout: googleFontsLayout,
98
+ ui: {
99
+ modal: { title: 'Google Fonts' },
100
+ },
101
+ };
102
+ export const MODULE_CATALOG = {
103
+ [localizationModule.id]: localizationModule,
104
+ [googleFontsModule.id]: googleFontsModule,
105
+ };
106
+ export function listHostModules() {
107
+ return Object.values(MODULE_CATALOG);
108
+ }
109
+ function isRecord(value) {
110
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
111
+ }
112
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/host/modules/catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface LayoutMutation {
2
+ imports: string[];
3
+ hooks: string[];
4
+ providerStart: string[];
5
+ providerEnd: string[];
6
+ }
7
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/host/modules/layout.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/host/modules/layout.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ interface FileTargetAdapter {
2
+ exists(path: string): Promise<boolean>;
3
+ readText(path: string): Promise<string | null>;
4
+ writeText(path: string, content: string): Promise<void>;
5
+ readDir(path: string): Promise<string[]>;
6
+ ensureDir(path: string): Promise<void>;
7
+ remove(path: string): Promise<void>;
8
+ move(fromPath: string, toPath: string): Promise<void>;
9
+ readJson<T>(path: string): Promise<T | null>;
10
+ writeJson(path: string, value: unknown): Promise<void>;
11
+ exec?(cwd: string, command: string, args: string[]): Promise<{
12
+ code: number;
13
+ stdout: string;
14
+ stderr: string;
15
+ }>;
16
+ }
17
+ export declare class LocalFsTargetAdapter implements FileTargetAdapter {
18
+ exists(p: string): Promise<boolean>;
19
+ readText(p: string): Promise<string | null>;
20
+ writeText(p: string, content: string): Promise<void>;
21
+ readDir(absDir: string): Promise<string[]>;
22
+ ensureDir(p: string): Promise<void>;
23
+ remove(p: string): Promise<void>;
24
+ move(fromPath: string, toPath: string): Promise<void>;
25
+ readJson<T>(p: string): Promise<T | null>;
26
+ writeJson(p: string, value: unknown): Promise<void>;
27
+ exec(cwd: string, command: string, args: string[]): Promise<{
28
+ code: number;
29
+ stdout: string;
30
+ stderr: string;
31
+ }>;
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=LocalFsTargetAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFsTargetAdapter.d.ts","sourceRoot":"","sources":["../../../../src/host/modules/runtime/LocalFsTargetAdapter.ts"],"names":[],"mappings":"AAOA,UAAU,iBAAiB;IACzB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,CACH,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,GACb,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AASD,qBAAa,oBAAqB,YAAW,iBAAiB;IACtD,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASnC,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQ3C,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ1C,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAMzC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;;;;;CAWxD"}
@@ -0,0 +1,85 @@
1
+ import { execFile as execFileCb } from 'child_process';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
4
+ import { promisify } from 'util';
5
+ const execFileAsync = promisify(execFileCb);
6
+ function trace(op, p) {
7
+ if (process.env.ANKH_TRACE_FS) {
8
+ const [, time] = new Date().toISOString().split('T');
9
+ console.log(`[FS-TRACE][${time}] ${op.padEnd(10)}: ${p}`);
10
+ }
11
+ }
12
+ export class LocalFsTargetAdapter {
13
+ async exists(p) {
14
+ try {
15
+ await fs.access(p);
16
+ return true;
17
+ }
18
+ catch {
19
+ return false;
20
+ }
21
+ }
22
+ async readText(p) {
23
+ try {
24
+ return await fs.readFile(p, 'utf8');
25
+ }
26
+ catch {
27
+ return null;
28
+ }
29
+ }
30
+ async writeText(p, content) {
31
+ trace('writeText', p);
32
+ await fs.mkdir(path.dirname(p), { recursive: true });
33
+ await fs.writeFile(p, content, 'utf8');
34
+ }
35
+ async readDir(absDir) {
36
+ try {
37
+ return await fs.readdir(absDir);
38
+ }
39
+ catch {
40
+ return [];
41
+ }
42
+ }
43
+ async ensureDir(p) {
44
+ trace('ensureDir', p);
45
+ await fs.mkdir(p, { recursive: true });
46
+ }
47
+ async remove(p) {
48
+ trace('remove', p);
49
+ try {
50
+ await fs.rm(p, { recursive: true, force: true });
51
+ }
52
+ catch {
53
+ // ignore
54
+ }
55
+ }
56
+ async move(fromPath, toPath) {
57
+ trace('move', `${fromPath} -> ${toPath}`);
58
+ await fs.mkdir(path.dirname(toPath), { recursive: true });
59
+ await fs.rename(fromPath, toPath);
60
+ }
61
+ async readJson(p) {
62
+ const txt = await this.readText(p);
63
+ if (!txt)
64
+ return null;
65
+ return JSON.parse(txt);
66
+ }
67
+ async writeJson(p, value) {
68
+ // trace handled by writeText
69
+ const content = JSON.stringify(value, null, 2).replace(/\r\n/g, '\n') + '\n';
70
+ await this.writeText(p, content);
71
+ }
72
+ async exec(cwd, command, args) {
73
+ try {
74
+ const { stdout, stderr } = await execFileAsync(command, args, { cwd });
75
+ return { code: 0, stdout, stderr };
76
+ }
77
+ catch (err) {
78
+ if (err instanceof Error) {
79
+ return { code: 1, stdout: '', stderr: err.message };
80
+ }
81
+ return { code: 1, stdout: '', stderr: 'Unknown exec error' };
82
+ }
83
+ }
84
+ }
85
+ //# sourceMappingURL=LocalFsTargetAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalFsTargetAdapter.js","sourceRoot":"","sources":["../../../../src/host/modules/runtime/LocalFsTargetAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ExpoRuntimePlan } from '@ankhorage/expo-runtime/planning';
2
+ import { type ZoraExtensionDefinition } from '../zoraExtensions';
3
+ export interface GeneratedAppFilesOptions {
4
+ runtimePlan?: ExpoRuntimePlan;
5
+ zoraExtensions?: readonly ZoraExtensionDefinition[];
6
+ }
7
+ export declare function syncGeneratedAppFiles(targetProjectPath: string, options?: GeneratedAppFilesOptions): Promise<void>;
8
+ //# sourceMappingURL=generatedAppFiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedAppFiles.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/generatedAppFiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKxE,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,cAAc,CAAC,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACrD;AAYD,wBAAsB,qBAAqB,CACzC,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,wBAA6B,iBAiCvC"}
@@ -0,0 +1,125 @@
1
+ import { getExpoBarcodeScannerViewSource } from '@ankhorage/expo-runtime/planning';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
4
+ import {} from '../zoraExtensions';
5
+ const FORBIDDEN_SPECIFIER_PATTERN = /['"]@ankh\//;
6
+ const GENERATED_APP_SCAN_FILES = [
7
+ 'package.json',
8
+ 'tsconfig.json',
9
+ 'babel.config.js',
10
+ 'metro.config.js',
11
+ 'app.config.ts',
12
+ 'index.js',
13
+ ];
14
+ export async function syncGeneratedAppFiles(targetProjectPath, options = {}) {
15
+ const { runtimePlan, zoraExtensions = [] } = options;
16
+ const generatedDest = path.join(targetProjectPath, 'src/generated');
17
+ const appExtensionRegistryDest = path.join(generatedDest, 'appExtensionRegistry.ts');
18
+ const expoBarcodeScannerDest = path.join(generatedDest, 'expo/ExpoBarcodeScannerView.tsx');
19
+ const usesExpoBarcodeScannerAdapter = runtimePlan?.runtimeAdapters.includes('ExpoBarcodeScannerAdapter') ?? false;
20
+ await Promise.all([
21
+ removePath(path.join(targetProjectPath, 'src/runtime')),
22
+ removePath(path.join(targetProjectPath, 'src/studio')),
23
+ removePath(path.join(targetProjectPath, 'src/dnd')),
24
+ removePath(appExtensionRegistryDest),
25
+ removePath(expoBarcodeScannerDest),
26
+ ]);
27
+ await fs.mkdir(generatedDest, { recursive: true });
28
+ if (usesExpoBarcodeScannerAdapter) {
29
+ await fs.mkdir(path.dirname(expoBarcodeScannerDest), { recursive: true });
30
+ await fs.writeFile(expoBarcodeScannerDest, getExpoBarcodeScannerViewSource(), 'utf8');
31
+ }
32
+ await fs.writeFile(appExtensionRegistryDest, createGeneratedAppExtensionRegistrySource({
33
+ usesExpoBarcodeScannerAdapter,
34
+ zoraExtensions,
35
+ }), 'utf8');
36
+ await assertNoForbiddenSpecifiers(targetProjectPath);
37
+ }
38
+ function createGeneratedAppExtensionRegistrySource(args) {
39
+ const importLines = new Set();
40
+ const entries = args.zoraExtensions
41
+ .flatMap((extension) => {
42
+ const exportNames = Array.from(new Set(Object.values(extension.components))).sort();
43
+ importLines.add(`import { ${exportNames.join(', ')} } from '${extension.packageName}';`);
44
+ return Object.entries(extension.components).map(([componentName, exportName]) => ({
45
+ componentName,
46
+ exportName,
47
+ }));
48
+ })
49
+ .sort((left, right) => left.componentName.localeCompare(right.componentName));
50
+ if (args.usesExpoBarcodeScannerAdapter) {
51
+ importLines.add("import { ExpoBarcodeScannerView } from './expo/ExpoBarcodeScannerView';");
52
+ entries.unshift({
53
+ componentName: 'BarcodeScannerView',
54
+ exportName: 'ExpoBarcodeScannerView',
55
+ });
56
+ }
57
+ const registryEntries = entries
58
+ .map(({ componentName, exportName }) => ` ${formatRegistryKey(componentName)}: ${exportName},`)
59
+ .join('\n');
60
+ return [
61
+ "import type { ComponentRegistry } from '@ankhorage/runtime';",
62
+ ...[...importLines].sort(),
63
+ '',
64
+ 'export const APP_EXTENSION_COMPONENT_REGISTRY: ComponentRegistry = {',
65
+ registryEntries,
66
+ '};',
67
+ '',
68
+ ]
69
+ .filter((line, index, lines) => line.length > 0 || lines[index - 1]?.length !== 0)
70
+ .join('\n');
71
+ }
72
+ function formatRegistryKey(key) {
73
+ if (/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key)) {
74
+ return key;
75
+ }
76
+ return JSON.stringify(key);
77
+ }
78
+ async function removePath(pathToRemove) {
79
+ await fs.rm(pathToRemove, { recursive: true, force: true });
80
+ }
81
+ async function assertNoForbiddenSpecifiers(targetProjectPath) {
82
+ const filesToCheck = GENERATED_APP_SCAN_FILES.map((file) => path.join(targetProjectPath, file));
83
+ filesToCheck.push(...(await listSourceFiles(path.join(targetProjectPath, 'src'))));
84
+ for (const filePath of filesToCheck) {
85
+ let source;
86
+ try {
87
+ source = await fs.readFile(filePath, 'utf8');
88
+ }
89
+ catch (error) {
90
+ if (isMissingPathError(error))
91
+ continue;
92
+ throw error;
93
+ }
94
+ if (FORBIDDEN_SPECIFIER_PATTERN.test(source)) {
95
+ throw new Error(`Generated app file ${filePath} still references @ankh/* packages.`);
96
+ }
97
+ }
98
+ }
99
+ async function listSourceFiles(rootPath) {
100
+ let entries;
101
+ try {
102
+ entries = await fs.readdir(rootPath, { withFileTypes: true });
103
+ }
104
+ catch (error) {
105
+ if (isMissingPathError(error))
106
+ return [];
107
+ throw error;
108
+ }
109
+ const files = [];
110
+ for (const entry of entries) {
111
+ const entryPath = path.join(rootPath, entry.name);
112
+ if (entry.isDirectory()) {
113
+ files.push(...(await listSourceFiles(entryPath)));
114
+ continue;
115
+ }
116
+ if (entry.isFile() && /\.(?:[cm]?[jt]sx?|json)$/.test(entry.name)) {
117
+ files.push(entryPath);
118
+ }
119
+ }
120
+ return files;
121
+ }
122
+ function isMissingPathError(error) {
123
+ return error instanceof Error && 'code' in error && error.code === 'ENOENT';
124
+ }
125
+ //# sourceMappingURL=generatedAppFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedAppFiles.js","sourceRoot":"","sources":["../../../src/host/orchestrator/generatedAppFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function syncGeneratedRouteFiles(args: {
2
+ projectPath: string;
3
+ generatedPaths: string[];
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=generatedRouteCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatedRouteCleanup.d.ts","sourceRoot":"","sources":["../../../src/host/orchestrator/generatedRouteCleanup.ts"],"names":[],"mappings":"AAYA,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,iBAqBA"}