@ankhorage/studio 2.0.21 → 2.0.23

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 (73) hide show
  1. package/dist/app/CreateCategoriesScreen.js +1 -1
  2. package/dist/app/CreateCategoriesScreen.js.map +1 -1
  3. package/dist/app/CreateCategoryTemplatesScreen.js +1 -1
  4. package/dist/app/CreateCategoryTemplatesScreen.js.map +1 -1
  5. package/dist/app/CreateProjectFromTemplateScreen.js +7 -5
  6. package/dist/app/CreateProjectFromTemplateScreen.js.map +1 -1
  7. package/dist/app/ProjectDetailScreen.d.ts.map +1 -1
  8. package/dist/app/ProjectDetailScreen.js +10 -9
  9. package/dist/app/ProjectDetailScreen.js.map +1 -1
  10. package/dist/app/StudioApp.d.ts.map +1 -1
  11. package/dist/app/StudioApp.js +2 -48
  12. package/dist/app/StudioApp.js.map +1 -1
  13. package/dist/app/workspace/WorkspacePrimitives.d.ts +7 -1
  14. package/dist/app/workspace/WorkspacePrimitives.d.ts.map +1 -1
  15. package/dist/app/workspace/WorkspacePrimitives.js +11 -5
  16. package/dist/app/workspace/WorkspacePrimitives.js.map +1 -1
  17. package/dist/cli/index.d.ts +7 -15
  18. package/dist/cli/index.d.ts.map +1 -1
  19. package/dist/cli/index.js +23 -37
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/hooks/useProjects.d.ts +7 -2
  22. package/dist/hooks/useProjects.d.ts.map +1 -1
  23. package/dist/hooks/useProjects.js +56 -57
  24. package/dist/hooks/useProjects.js.map +1 -1
  25. package/dist/hooks/useTemplateCatalog.d.ts.map +1 -1
  26. package/dist/hooks/useTemplateCatalog.js +2 -3
  27. package/dist/hooks/useTemplateCatalog.js.map +1 -1
  28. package/dist/host/http/server.d.ts.map +1 -1
  29. package/dist/host/http/server.js +11 -8
  30. package/dist/host/http/server.js.map +1 -1
  31. package/dist/host/index.d.ts +1 -1
  32. package/dist/host/index.d.ts.map +1 -1
  33. package/dist/host/index.js +1 -1
  34. package/dist/host/index.js.map +1 -1
  35. package/dist/host/layout/templates/screen.d.ts.map +1 -1
  36. package/dist/host/layout/templates/screen.js +3 -4
  37. package/dist/host/layout/templates/screen.js.map +1 -1
  38. package/dist/host/orchestrator/projectCreationSource.d.ts +17 -0
  39. package/dist/host/orchestrator/projectCreationSource.d.ts.map +1 -0
  40. package/dist/host/orchestrator/projectCreationSource.js +2 -0
  41. package/dist/host/orchestrator/projectCreationSource.js.map +1 -0
  42. package/dist/host/orchestrator/projectManager.d.ts +7 -3
  43. package/dist/host/orchestrator/projectManager.d.ts.map +1 -1
  44. package/dist/host/orchestrator/projectManager.js +29 -8
  45. package/dist/host/orchestrator/projectManager.js.map +1 -1
  46. package/dist/host/orchestrator/projectStore.js +6 -0
  47. package/dist/host/orchestrator/projectStore.js.map +1 -1
  48. package/dist/host/orchestrator/scaffolder.d.ts +0 -2
  49. package/dist/host/orchestrator/scaffolder.d.ts.map +1 -1
  50. package/dist/host/orchestrator/scaffolder.js +0 -4
  51. package/dist/host/orchestrator/scaffolder.js.map +1 -1
  52. package/dist/host/templates/index.d.ts +12 -0
  53. package/dist/host/templates/index.d.ts.map +1 -0
  54. package/dist/host/templates/index.js +64 -0
  55. package/dist/host/templates/index.js.map +1 -0
  56. package/dist/host/zoraExtensions/index.d.ts +3 -2
  57. package/dist/host/zoraExtensions/index.d.ts.map +1 -1
  58. package/dist/host/zoraExtensions/index.js +12 -8
  59. package/dist/host/zoraExtensions/index.js.map +1 -1
  60. package/dist/templateCatalogContracts.d.ts +1 -2
  61. package/dist/templateCatalogContracts.d.ts.map +1 -1
  62. package/dist/workspaceSearch.d.ts.map +1 -1
  63. package/dist/workspaceSearch.js +1 -1
  64. package/dist/workspaceSearch.js.map +1 -1
  65. package/package.json +3 -4
  66. package/dist/hooks/useWorkspaceActions.d.ts +0 -8
  67. package/dist/hooks/useWorkspaceActions.d.ts.map +0 -1
  68. package/dist/hooks/useWorkspaceActions.js +0 -28
  69. package/dist/hooks/useWorkspaceActions.js.map +0 -1
  70. package/dist/host/templateRegistry/index.d.ts +0 -9
  71. package/dist/host/templateRegistry/index.d.ts.map +0 -1
  72. package/dist/host/templateRegistry/index.js +0 -75
  73. package/dist/host/templateRegistry/index.js.map +0 -1
@@ -21,15 +21,13 @@ const ZORA_TABLETOP_EXTENSION = {
21
21
  },
22
22
  };
23
23
  const KNOWN_ZORA_EXTENSIONS = [ZORA_CHESS_EXTENSION, ZORA_TABLETOP_EXTENSION];
24
- const TABLETOP_TEMPLATE_IDS = new Set(['card-trainer', 'card_trainer', 'poker']);
25
- export function resolveZoraExtensionsForTemplateSelection(selection) {
26
- if (selection.category === 'games' && selection.templateId === 'chess') {
27
- return [ZORA_CHESS_EXTENSION];
24
+ /*** Resolve extension packages from the component types actually used by one manifest. */
25
+ export function resolveZoraExtensionsForManifest(manifest) {
26
+ const componentTypes = new Set();
27
+ for (const screen of Object.values(manifest.screens)) {
28
+ collectNodeTypes(screen.root, componentTypes);
28
29
  }
29
- if (selection.category === 'games' && TABLETOP_TEMPLATE_IDS.has(selection.templateId)) {
30
- return [ZORA_TABLETOP_EXTENSION];
31
- }
32
- return [];
30
+ return KNOWN_ZORA_EXTENSIONS.filter((extension) => Object.keys(extension.components).some((componentType) => componentTypes.has(componentType)));
33
31
  }
34
32
  export function resolveZoraExtensionsFromDependencies(dependencies) {
35
33
  return KNOWN_ZORA_EXTENSIONS.filter((extension) => extension.packageName in dependencies);
@@ -51,4 +49,10 @@ export function collectZoraExtensionDependencies(extensions) {
51
49
  };
52
50
  }, {});
53
51
  }
52
+ /*** Collect component types recursively from one manifest UI node. */
53
+ function collectNodeTypes(node, componentTypes) {
54
+ componentTypes.add(node.type);
55
+ node.children?.forEach((child) => collectNodeTypes(child, componentTypes));
56
+ node.repeat?.empty?.forEach((child) => collectNodeTypes(child, componentTypes));
57
+ }
54
58
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/host/zoraExtensions/index.ts"],"names":[],"mappings":"AASA,MAAM,oBAAoB,GAAG;IAC3B,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,aAAa;KAC3B;IACD,YAAY,EAAE;QACZ,uBAAuB,EAAE,QAAQ;KAClC;CACgC,CAAC;AAEpC,MAAM,uBAAuB,GAAG;IAC9B,WAAW,EAAE,0BAA0B;IACvC,UAAU,EAAE;QACV,aAAa,EAAE,eAAe;QAC9B,KAAK,EAAE,eAAe;QACtB,qBAAqB,EAAE,eAAe;QACtC,gCAAgC,EAAE,eAAe;KAClD;IACD,YAAY,EAAE;QACZ,0BAA0B,EAAE,QAAQ;KACrC;CACgC,CAAC;AAEpC,MAAM,qBAAqB,GAAG,CAAC,oBAAoB,EAAE,uBAAuB,CAAU,CAAC;AACvF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAEjF,MAAM,UAAU,yCAAyC,CACvD,SAAmC;IAEnC,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,SAAS,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACvE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,SAAS,CAAC,QAAQ,KAAK,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACtF,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,YAA8C;IAE9C,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAG,cAA+D;IAElE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE9D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAA8C;IAE9C,OAAO,UAAU,CAAC,MAAM,CAAyB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE;QAC3E,OAAO;YACL,GAAG,YAAY;YACf,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/host/zoraExtensions/index.ts"],"names":[],"mappings":"AASA,MAAM,oBAAoB,GAAG;IAC3B,WAAW,EAAE,uBAAuB;IACpC,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;QACxB,WAAW,EAAE,aAAa;KAC3B;IACD,YAAY,EAAE;QACZ,uBAAuB,EAAE,QAAQ;KAClC;CACgC,CAAC;AAEpC,MAAM,uBAAuB,GAAG;IAC9B,WAAW,EAAE,0BAA0B;IACvC,UAAU,EAAE;QACV,aAAa,EAAE,eAAe;QAC9B,KAAK,EAAE,eAAe;QACtB,qBAAqB,EAAE,eAAe;QACtC,gCAAgC,EAAE,eAAe;KAClD;IACD,YAAY,EAAE;QACZ,0BAA0B,EAAE,QAAQ;KACrC;CACgC,CAAC;AAEpC,MAAM,qBAAqB,GAAG,CAAC,oBAAoB,EAAE,uBAAuB,CAAU,CAAC;AAEvF,0FAA0F;AAC1F,MAAM,UAAU,gCAAgC,CAC9C,QAAqB;IAErB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACrD,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAChD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAC7F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC,CACnD,YAA8C;IAE9C,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,GAAG,cAA+D;IAElE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE9D,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,UAA8C;IAE9C,OAAO,UAAU,CAAC,MAAM,CAAyB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE;QAC3E,OAAO;YACL,GAAG,YAAY;YACf,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;SAClC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,sEAAsE;AACtE,SAAS,gBAAgB,CAAC,IAAY,EAAE,cAA2B;IACjE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;AAClF,CAAC"}
@@ -1,9 +1,8 @@
1
1
  import type { AppCategory, ThemeConfig } from '@ankhorage/contracts';
2
2
  export interface TemplateCatalogTemplate {
3
3
  id: string;
4
- templateId: string;
4
+ slug: string;
5
5
  name: string;
6
- description: string;
7
6
  }
8
7
  export interface TemplateCatalogCategory {
9
8
  id: AppCategory;
@@ -1 +1 @@
1
- {"version":3,"file":"templateCatalogContracts.d.ts","sourceRoot":"","sources":["../src/templateCatalogContracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG;IACpD,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"templateCatalogContracts.d.ts","sourceRoot":"","sources":["../src/templateCatalogContracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAErE,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,WAAW,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,uBAAuB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,uBAAuB,EAAE,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,uBAAuB,GAAG;IACpD,QAAQ,EAAE,WAAW,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceSearch.d.ts","sourceRoot":"","sources":["../src/workspaceSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AA0BjF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,oBAAoB,EAAE,CAmBxB;AAYD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,GACf,aAAa,EAAE,CAqBjB"}
1
+ {"version":3,"file":"workspaceSearch.d.ts","sourceRoot":"","sources":["../src/workspaceSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AA0BjF,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,cAAc,GACnB,oBAAoB,EAAE,CAmBxB;AAYD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,MAAM,GACf,aAAa,EAAE,CAoBjB"}
@@ -50,7 +50,7 @@ export function filterAndSortTemplates(catalog, queryRaw) {
50
50
  return entries;
51
51
  return entries
52
52
  .map((template) => {
53
- const score = Math.max(scoreText(normalize(template.name), query), scoreText(normalize(template.id), query), scoreText(normalize(template.templateId), query), scoreText(normalize(template.description), query), scoreText(normalize(template.category), query), scoreText(normalize(template.categoryLabel), query));
53
+ const score = Math.max(scoreText(normalize(template.name), query), scoreText(normalize(template.id), query), scoreText(normalize(template.slug), query), scoreText(normalize(template.category), query), scoreText(normalize(template.categoryLabel), query));
54
54
  return { template, score };
55
55
  })
56
56
  .filter((entry) => entry.score > 0)
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceSearch.js","sourceRoot":"","sources":["../src/workspaceSearch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceSearch.js","sourceRoot":"","sources":["../src/workspaceSearch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/studio",
3
- "version": "2.0.21",
3
+ "version": "2.0.23",
4
4
  "description": "Studio authoring package for Ankhorage apps",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/ankhorage/studio#readme",
@@ -158,7 +158,6 @@
158
158
  "studio.projects.create",
159
159
  "studio.projects.delete",
160
160
  "studio.projects.sync",
161
- "studio.workspace.install",
162
161
  "studio.secrets.list",
163
162
  "studio.secrets.create",
164
163
  "studio.secrets.replace",
@@ -213,7 +212,7 @@
213
212
  ],
214
213
  "dependencies": {
215
214
  "@ankhorage/color-theory": "^0.3.0",
216
- "@ankhorage/contracts": "^8.0.2",
215
+ "@ankhorage/contracts": "^8.2.0",
217
216
  "@ankhorage/data-sources": "^2.0.0",
218
217
  "@ankhorage/deploy": "^0.12.0",
219
218
  "@ankhorage/expo-runtime": "^3.2.7",
@@ -227,7 +226,7 @@
227
226
  "@ankhorage/supabase-auth": "^1.2.7",
228
227
  "@ankhorage/supabase-storage": "^0.2.0",
229
228
  "@ankhorage/supabase-vault": "^0.2.5",
230
- "@ankhorage/templates": "^9.0.2",
229
+ "@ankhorage/templates": "^9.1.3",
231
230
  "@ankhorage/zora": "^4.0.0",
232
231
  "@ankhorage/zora-chess": "^0.1.2",
233
232
  "@ankhorage/zora-tabletop": "^0.0.5",
@@ -1,8 +0,0 @@
1
- export interface InstallWorkspacePackagesResponse {
2
- success: boolean;
3
- scope: 'workspace';
4
- }
5
- export declare function useWorkspaceActions(): {
6
- installWorkspacePackages: () => Promise<InstallWorkspacePackagesResponse>;
7
- };
8
- //# sourceMappingURL=useWorkspaceActions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWorkspaceActions.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkspaceActions.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;CACpB;AAqBD,wBAAgB,mBAAmB;oCAET,OAAO,CAAC,gCAAgC,CAAC;EAUlE"}
@@ -1,28 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { API_BASE } from '../core/constants';
3
- function isRecord(value) {
4
- return typeof value === 'object' && value !== null;
5
- }
6
- async function readJson(response) {
7
- return await response.json();
8
- }
9
- function parseInstallWorkspacePackagesResponse(value) {
10
- if (!isRecord(value) || value.success !== true || value.scope !== 'workspace') {
11
- throw new Error('Install packages response was invalid');
12
- }
13
- return {
14
- success: true,
15
- scope: 'workspace',
16
- };
17
- }
18
- export function useWorkspaceActions() {
19
- const installWorkspacePackages = useCallback(async () => {
20
- const response = await fetch(`${API_BASE}/workspace/packages/install`, { method: 'POST' });
21
- if (!response.ok) {
22
- throw new Error('Failed to install workspace packages');
23
- }
24
- return parseInstallWorkspacePackagesResponse(await readJson(response));
25
- }, []);
26
- return { installWorkspacePackages };
27
- }
28
- //# sourceMappingURL=useWorkspaceActions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWorkspaceActions.js","sourceRoot":"","sources":["../../src/hooks/useWorkspaceActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,QAAkB;IACxC,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,qCAAqC,CAAC,KAAc;IAC3D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,WAAW;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,MAAM,wBAAwB,GAC5B,WAAW,CAAC,KAAK,IAA+C,EAAE;QAChE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,6BAA6B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,qCAAqC,CAAC,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACtC,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { AppCategory, AppManifest } from '@ankhorage/contracts';
2
- import type { TemplateCatalog } from '../../templateCatalogContracts';
3
- export interface ProjectTemplateSelection {
4
- category: AppCategory;
5
- templateId: string;
6
- }
7
- export declare function getProjectTemplate(selection: ProjectTemplateSelection): AppManifest;
8
- export declare function getTemplateCatalog(): TemplateCatalog;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/host/templateRegistry/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQrE,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,gCAAgC,CAAC;AAExC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAmCD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,wBAAwB,GAAG,WAAW,CAanF;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAQpD"}
@@ -1,75 +0,0 @@
1
- import { CATEGORY_PRESETS, createStarterTemplate, listStarterTemplateSummaries, } from '@ankhorage/templates';
2
- function createProjectTemplateId(selection) {
3
- return `${selection.category}/${selection.templateId}`;
4
- }
5
- function createSeed(category) {
6
- const preset = Object.entries(CATEGORY_PRESETS).find(([id]) => id === category)?.[1];
7
- if (!preset)
8
- throw new Error(`Unknown app category '${category}'.`);
9
- return {
10
- category,
11
- categoryLabel: preset.label,
12
- appName: preset.defaultName,
13
- slug: preset.defaultSlug,
14
- summary: preset.summary,
15
- focusAreas: preset.focusAreas,
16
- primaryColor: preset.recommendedPrimaryColors[0],
17
- harmony: preset.recommendedHarmonies[0],
18
- };
19
- }
20
- function buildProjectTemplate(selection) {
21
- return createStarterTemplate(createSeed(selection.category), {
22
- templateId: selection.templateId,
23
- }).manifest;
24
- }
25
- const PROJECT_TEMPLATE_INDEX = createTemplateIndex();
26
- const PROJECT_TEMPLATE_CATALOG = createTemplateCatalog();
27
- export function getProjectTemplate(selection) {
28
- const summary = PROJECT_TEMPLATE_INDEX.find((template) => template.category === selection.category && template.templateId === selection.templateId);
29
- if (!summary) {
30
- throw new Error(`Template '${selection.category}/${selection.templateId}' not found in published templates package.`);
31
- }
32
- return buildProjectTemplate(selection);
33
- }
34
- export function getTemplateCatalog() {
35
- return {
36
- categories: PROJECT_TEMPLATE_CATALOG.categories.map((category) => ({
37
- ...category,
38
- focusAreas: [...category.focusAreas],
39
- templates: category.templates.map((template) => ({ ...template })),
40
- })),
41
- };
42
- }
43
- function createTemplateIndex() {
44
- return listStarterTemplateSummaries().map((summary) => {
45
- const selection = {
46
- category: summary.category,
47
- templateId: summary.id,
48
- };
49
- return {
50
- id: createProjectTemplateId(selection),
51
- category: summary.category,
52
- templateId: summary.id,
53
- name: summary.label,
54
- description: summary.description,
55
- };
56
- });
57
- }
58
- function createTemplateCatalog() {
59
- const categories = Object.entries(CATEGORY_PRESETS).map(([categoryId, preset]) => {
60
- const category = categoryId;
61
- const templates = PROJECT_TEMPLATE_INDEX.filter((summary) => summary.category === category).map(({ category: _category, ...template }) => template);
62
- return {
63
- id: category,
64
- label: preset.label,
65
- summary: preset.summary,
66
- focusAreas: [...preset.focusAreas],
67
- primaryColor: preset.recommendedPrimaryColors[0],
68
- harmony: preset.recommendedHarmonies[0],
69
- templateCount: templates.length,
70
- templates,
71
- };
72
- });
73
- return { categories };
74
- }
75
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/host/templateRegistry/index.ts"],"names":[],"mappings":"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"}