@ankhorage/templates 1.9.2 → 2.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ankhorage/templates
2
2
 
3
+ ## 2.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 7a1d9ad: Generate authentication flow only under `infra.auth.flow`, resolve default OAuth routes through the contracts helper, remove implicit authorization from first-party templates, and reject reintroduction of `settings.authFlow`.
8
+
3
9
  ## 1.9.2
4
10
 
5
11
  ### Patch Changes
package/README.md CHANGED
@@ -1,186 +1,27 @@
1
- # @ankhorage/templates
1
+ <!-- markdownlint-disable MD013 MD033 -->
2
+ <!-- This file is generated by Paradox. Do not edit manually. -->
2
3
 
3
- Reusable Ankhorage app templates, presets, and manifest generators.
4
+ # TEMPLATES
4
5
 
5
- ## CLI And Provider Commands
6
+ ![license: MIT](././docs/badges/license.svg) ![npm: v1.9.2](././docs/badges/npm.svg) ![runtime: bun](././docs/badges/runtime.svg) ![typescript: strict](././docs/badges/typescript.svg) ![eslint: checked](././docs/badges/eslint.svg) ![prettier: checked](././docs/badges/prettier.svg) ![build: checked](././docs/badges/build.svg) ![tests: checked](././docs/badges/tests.svg) ![docs: paradox](././docs/badges/docs.svg)
6
7
 
7
- `@ankhorage/templates` is now also a package-scoped Ankh provider and standalone CLI for the
8
- template catalog.
8
+ Reusable Ankhorage app templates, presets, and manifest generators.
9
9
 
10
- Shipped commands:
10
+ ## Installation
11
11
 
12
12
  ```bash
13
- ankh templates list
14
- ankh templates list --category games
15
-
16
- ankh templates inspect games/chess
17
-
18
- ankh templates create my-app --template games/chess
19
-
20
- bunx @ankhorage/templates list
21
- bunx @ankhorage/templates inspect games/chess
22
- bunx @ankhorage/templates create my-app --template games/chess
23
- ```
24
-
25
- Canonical selector syntax is strict:
26
-
27
- - use `<category>/<templateId>`
28
- - examples: `games/default`, `games/chess`, `social_community/creator`
29
- - `create` and `inspect` reject bare ids like `chess`
30
- - CLI/provider commands do not silently fall back from invalid selectors
31
-
32
- `create` is manifest-first only in this package. It writes:
33
-
34
- ```txt
35
- my-app/
36
- ankh.config.json
37
- ankh.template.json
38
- README.md
39
- ```
40
-
41
- It does not scaffold a full runnable app/workspace, install dependencies, or depend on Studio.
42
- Root-level `ankh create ...` remains a later composition concern outside this package.
43
-
44
- ## Usage
45
-
46
- ```ts
47
- import {
48
- createCategoryAppManifest,
49
- createStarterTemplate,
50
- listStarterTemplatesByCategory,
51
- } from '@ankhorage/templates';
52
-
53
- const manifest = createCategoryAppManifest('social_community');
54
-
55
- const creatorManifest = createStarterTemplate(seed, {
56
- templateId: 'creator',
57
- });
58
-
59
- const gameTemplates = listStarterTemplatesByCategory('games');
60
- ```
61
-
62
- ## Category Starter Templates
63
-
64
- Starter templates are category-aware. A category can expose one or more template variants.
65
- For example, `social_community` provides a default community starter and a `creator`
66
- starter, while `games` provides the default quest-loop starter and a `chess` starter.
67
-
68
- Use `listStarterTemplatesByCategory(category)` when an editor or generator needs a selectable
69
- list for one category. It returns summaries only, not factories:
70
-
71
- ```ts
72
- const templates = listStarterTemplatesByCategory('games');
73
- // [
74
- // { id: 'default', category: 'games', label: 'Quest loop', ... },
75
- // { id: 'chess', category: 'games', label: 'Chess', ... },
76
- // ]
77
- ```
78
-
79
- Use `listStarterTemplateSummaries()` when a tool needs all registered starter choices.
80
-
81
- Default resolution is deterministic:
82
-
83
- - no `templateId` selects `default`
84
- - an unknown template id falls back to that category's `default`
85
- - an unregistered category falls back to `fallback/default`
86
-
87
- The generated manifest includes category-specific routes, screens, copy, and route icons.
88
- Icons use the existing route `icon: IconSpec` property from `@ankhorage/contracts`:
89
-
90
- ```ts
91
- {
92
- name: 'groups',
93
- screenId: 'social_community-community-starter-groups',
94
- label: 'Groups',
95
- icon: { provider: 'material-community', name: 'account-group-outline' },
96
- }
13
+ bunx @ankhorage/templates
97
14
  ```
98
15
 
99
- Auth behavior is not modeled as a visible navigation route in category templates. It remains
100
- controlled by the manifest `infra` and `settings.authFlow` configuration. The original generic
101
- starter remains available as the fallback template and preserves its existing sign-in screen.
102
-
103
- ## Current Templates
104
-
105
- All `AppCategory` values have a dedicated `starter/default` template with an explicit
106
- `navigator.type`, deterministic route labels, and `material-community` route icons.
107
-
108
- | Category | Navigator | Routes (labels) | Icons (`material-community`) |
109
- | ----------------------- | --------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
110
- | `books_reading` | `tabs` | Library · Discover · Lists · Notes · Profile | `bookshelf` · `compass-outline` · `format-list-checks` · `notebook-outline` · `account-circle-outline` |
111
- | `business_productivity` | `drawer` | Dashboard · Projects · Tasks · Calendar · Reports · Settings | `view-dashboard-outline` · `folder-multiple-outline` · `clipboard-check-outline` · `calendar-month-outline` · `chart-box-outline` · `cog-outline` |
112
- | `developer_tools` | `drawer` | Dashboard · Builds · Incidents · Environments · Deployments · Settings | `view-dashboard-outline` · `hammer-wrench` · `alert-circle-outline` · `server-network` · `rocket-launch-outline` · `cog-outline` |
113
- | `education_learning` | `tabs` | Courses · Study · Practice · Progress · Profile | `book-education-outline` · `school-outline` · `pencil-box-outline` · `chart-line` · `account-circle-outline` |
114
- | `entertainment_media` | `tabs` | Discover · Watchlist · Now · Library · Profile | `compass-outline` · `bookmark-outline` · `play-circle-outline` · `movie-open-outline` · `account-circle-outline` |
115
- | `finance_money` | `tabs` | Overview · Accounts · Transactions · Budget · Insights | `view-dashboard-outline` · `bank-outline` · `swap-horizontal` · `wallet-outline` · `chart-donut` |
116
- | `food_drink` | `tabs` | Discover · Menu · Reservations · Orders · Profile | `silverware-fork-knife` · `book-open-page-variant-outline` · `calendar-clock-outline` · `receipt-text-outline` · `account-heart-outline` |
117
- | `games` | `tabs` | Home · Quests · Inventory · Friends · Profile | `gamepad-variant-outline` · `flag-outline` · `treasure-chest-outline` · `account-multiple-outline` · `account-circle-outline` |
118
- | `graphics_design` | `drawer` | Dashboard · Briefs · Assets · Reviews · Brand · Settings | `view-dashboard-outline` · `file-document-outline` · `image-multiple-outline` · `comment-check-outline` · `palette-outline` · `cog-outline` |
119
- | `health_fitness` | `tabs` | Today · Plans · Progress · Coach · Profile | `calendar-today-outline` · `clipboard-list-outline` · `chart-line` · `message-processing-outline` · `account-circle-outline` |
120
- | `kids_family` | `tabs` | Home · Routines · Discover · Favorites · Parents | `home-outline` · `calendar-check-outline` · `compass-outline` · `heart-outline` · `shield-account-outline` |
121
- | `lifestyle` | `tabs` | Dashboard · Collections · Plans · Explore · Profile | `view-dashboard-outline` · `bookmark-multiple-outline` · `calendar-star` · `compass-outline` · `account-circle-outline` |
122
- | `medical` | `tabs` | Appointments · Care Team · Records · Messages · Profile | `calendar-check-outline` · `account-heart-outline` · `file-document-outline` · `message-processing-outline` · `account-circle-outline` |
123
- | `music_audio` | `tabs` | Home · Search · Library · Player · Profile | `music-note-outline` · `magnify` · `playlist-music-outline` · `play-circle-outline` · `account-circle-outline` |
124
- | `navigation_travel` | `tabs` | Destinations · Itinerary · Bookings · Map · Profile | `map-marker-outline` · `timeline-outline` · `ticket-outline` · `map-outline` · `account-circle-outline` |
125
- | `news_magazines` | `tabs` | Headlines · Topics · Saved · Search · Profile | `newspaper-variant-outline` · `tag-multiple-outline` · `bookmark-outline` · `magnify` · `account-circle-outline` |
126
- | `photo_video` | `tabs` | Capture · Library · Edit · Share · Profile | `camera-outline` · `image-multiple-outline` · `movie-edit-outline` · `share-variant-outline` · `account-circle-outline` |
127
- | `reference` | `drawer` | Browse · Search · Categories · Saved · History · Settings | `book-open-variant` · `magnify` · `shape-outline` · `bookmark-outline` · `clock-outline` · `cog-outline` |
128
- | `shopping_commerce` | `tabs` | Browse · Search · Sell · Orders · Profile | `shopping-outline` · `magnify` · `store-plus-outline` · `package-variant-closed` · `account-circle-outline` |
129
- | `social_community` | `tabs` | Feed · Groups · Messages · Profile · Settings | `newspaper-variant-outline` · `account-group-outline` · `message-text-outline` · `account-circle-outline` · `cog-outline` |
130
- | `sports` | `tabs` | Scores · Schedule · Standings · Teams · Profile | `scoreboard-outline` · `calendar-month-outline` · `format-list-numbered` · `soccer-field` · `account-circle-outline` |
131
- | `utilities_tools` | `drawer` | Dashboard · Tools · Shortcuts · Storage · Diagnostics · Settings | `view-dashboard-outline` · `wrench-outline` · `lightning-bolt-outline` · `folder-multiple-outline` · `stethoscope` · `cog-outline` |
132
- | `weather` | `tabs` | Now · Forecast · Alerts · Locations | `weather-partly-cloudy` · `weather-cloudy-clock` · `weather-cloudy-alert` · `map-marker-outline` |
133
-
134
- The fallback template remains available and is used only for unknown runtime category strings:
135
-
136
- - `fallback/default`: Home · Details · Settings (stack)
137
-
138
- Additional variants:
139
-
140
- - `business_productivity/urban-water-monitor`: Project. This urban water monitoring concept
141
- starter uses a single `project` route and keeps API strategy as Project screen copy only.
142
- - `games/chess`: Home · Settings. The Home screen renders a `ChessBoard` node with a static
143
- initial FEN and requires generated apps to provide `@ankhorage/zora-chess` through their
144
- extension registry.
145
- - `food_drink/nutrition-catalog-scan`: Products · Scan · Stats · Profile. This restricted product
146
- barcode nutrition scanner starter uses `infra.auth.scope = "global"`, Supabase auth, native
147
- RBAC, and an app-facing `profiles` table. Generated apps should keep identity in Supabase Auth,
148
- browse products through `GET /products`, look up barcodes through
149
- `GET /products/by-barcode/:barcode`, create missing products through `POST /products`, and
150
- handle duplicate barcode conflicts by opening the existing product id. Native barcode scanning
151
- can use an app camera adapter such as `expo-camera`, while visible scanner and permission UI
152
- should use ZORA scanner primitives.
153
- - `social_community/creator`: Studio · Posts · Audience · Insights · Settings
154
-
155
- Only categories that exist in `AppCategory` are registered. New category literals should be added
156
- in `@ankhorage/contracts` before this package registers templates for them.
157
-
158
- ## Adding A Category Template
159
-
160
- Add category-owned default files under `src/templates/starter/categories/<category>/`:
161
-
162
- - `content.ts` for category-specific copy and placeholder data
163
- - `routes.ts` for route names, labels, screen ids, and icons
164
- - `screens.ts` for ZORA node trees
165
- - `default.template.ts` for manifest assembly
166
- - `index.ts` for `CategoryStarterTemplateDefinition` metadata
167
-
168
- Add named non-default variants in their own folder:
169
-
170
- - `src/templates/starter/categories/<category>/<template-id>/content.ts`
171
- - `src/templates/starter/categories/<category>/<template-id>/routes.ts`
172
- - `src/templates/starter/categories/<category>/<template-id>/screens.ts`
173
- - `src/templates/starter/categories/<category>/<template-id>/template.ts`
174
- - `src/templates/starter/categories/<category>/<template-id>/index.ts`
175
-
176
- Register the category in `src/templates/starter/starter.registry.ts`. Keep shared behavior in
177
- `src/templates/shared/*`; category wording and navigation should stay inside the category folder.
178
-
179
- ## Verification
180
-
181
- ```bash
182
- bun run typecheck
183
- bun run build
184
- bun run lint
185
- bun run test
186
- ```
16
+ ## Generated documentation
17
+
18
+ - [Interactive documentation app](././docs/index.html)
19
+ - [Public API reference](././docs/exports.md)
20
+ - [Component registry](././docs/components.md)
21
+ - [Architecture overview](././docs/diagrams/architecture-overview.mmd)
22
+ - [Module relationships](././docs/diagrams/module-relationships.mmd)
23
+ - [Export graph](././docs/diagrams/export-graph.mmd)
24
+ - [ankhorage-templates sequence](././docs/diagrams/sequences/ankhorage-templates.mmd)
25
+ - [createStarterTemplate sequence](././docs/diagrams/sequences/create-starter-template.mmd)
26
+ - [listStarterTemplatesByCategory sequence](././docs/diagrams/sequences/list-starter-templates-by-category.mmd)
27
+ - [resolveStarterTemplate sequence](././docs/diagrams/sequences/resolve-starter-template.mmd)
@@ -1,4 +1,4 @@
1
- import type { AppCategory, AppManifest } from '@ankhorage/contracts';
1
+ import { type AppCategory, type AppManifest } from '@ankhorage/contracts';
2
2
  import type { AppManifestOverrides } from '../internal/overrides';
3
3
  import { type TemplateKind } from '../templates/starter';
4
4
  export declare function createCategoryAppManifest(category: AppCategory, template?: TemplateKind, overrides?: AppManifestOverrides): AppManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"create-category-app.d.ts","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAA2B,MAAM,sBAAsB,CAAC;AAG9F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQlE,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA2HhF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,EACrB,QAAQ,GAAE,YAAwB,EAClC,SAAS,CAAC,EAAE,oBAAoB,GAC/B,WAAW,CAGb"}
1
+ {"version":3,"file":"create-category-app.d.ts","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAIjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQlE,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA2HhF,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,EACrB,QAAQ,GAAE,YAAwB,EAClC,SAAS,CAAC,EAAE,oBAAoB,GAC/B,WAAW,CAGb"}
@@ -1,3 +1,4 @@
1
+ import { resolveAuthFlow, } from '@ankhorage/contracts';
1
2
  import { mergeAppManifest } from '../internal/merge';
2
3
  import { CATEGORY_PRESETS } from '../presets/category-presets';
3
4
  import { createScreen } from '../templates/shared/screen';
@@ -47,7 +48,7 @@ function addProviderEntryScreen(manifest) {
47
48
  providers.length === 0) {
48
49
  return manifest;
49
50
  }
50
- const screenId = manifest.settings.authFlow.signInRoute;
51
+ const screenId = resolveAuthFlow(manifest.infra.auth.flow).signInRoute;
51
52
  if (manifest.screens[screenId] !== undefined) {
52
53
  return manifest;
53
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-category-app.js","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-category-app.js","sourceRoot":"","sources":["../../src/generators/create-category-app.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AppManifest, InfraManifest } from '@ankhorage/contracts';
1
+ import { type AppManifest, type InfraManifest } from '@ankhorage/contracts';
2
2
  export declare const DEFAULT_TEMPLATE_VERSION = "1.0.0";
3
3
  export declare const DEFAULT_THEME_ID = "default";
4
4
  export declare const DEFAULT_THEME_NAME = "Default";
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/internal/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAEvE,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,aAoCxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,UAAU,CAYjD,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/internal/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAqB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/F,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAChD,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAC1C,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,eAAO,MAAM,UAAU,EAAE,aAiCxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,UAAU,CAKjD,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_AUTH_FLOW } from '@ankhorage/contracts';
1
2
  export const DEFAULT_TEMPLATE_VERSION = '1.0.0';
2
3
  export const DEFAULT_THEME_ID = 'default';
3
4
  export const DEFAULT_THEME_NAME = 'Default';
@@ -17,10 +18,7 @@ export const BASE_INFRA = {
17
18
  auth: {
18
19
  provider: 'supabase',
19
20
  scope: 'global',
20
- authorization: {
21
- kind: 'ABAC',
22
- engine: 'cerbos',
23
- },
21
+ flow: { ...DEFAULT_AUTH_FLOW },
24
22
  signIn: {
25
23
  identifiers: ['email'],
26
24
  },
@@ -39,13 +37,6 @@ export const BASE_INFRA = {
39
37
  plugins: [],
40
38
  };
41
39
  export const BASE_SETTINGS = {
42
- authFlow: {
43
- unauthorizedRoute: 'sign-in',
44
- signInRoute: 'sign-in',
45
- signUpRoute: 'sign-up',
46
- signOutRoute: 'sign-out',
47
- postSignInRoute: 'index',
48
- },
49
40
  localization: {
50
41
  defaultLocale: 'en',
51
42
  locales: ['en'],
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/internal/defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,KAAK;KACZ;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,OAAO,CAAC;KACnB;IACD,UAAU,EAAE;QACV,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,KAAK;KAClB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;SACjB;QACD,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB;QACD,MAAM,EAAE;YACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YACrC,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;YACzC,YAAY,EAAE,YAAY;SAC3B;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;SAC3C;KACF;IACD,UAAU,EAAE;QACV,GAAG,EAAE,KAAK;KACX;IACD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA4B;IACpD,QAAQ,EAAE;QACR,iBAAiB,EAAE,SAAS;QAC5B,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,UAAU;QACxB,eAAe,EAAE,OAAO;KACzB;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC;KAChB;CACF,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/internal/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAsB,MAAM,sBAAsB,CAAC;AAE/F,MAAM,CAAC,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,KAAK;KACZ;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,OAAO,CAAC;KACnB;IACD,UAAU,EAAE;QACV,MAAM,EAAE,UAAU;QAClB,UAAU,EAAE,KAAK;KAClB;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,EAAE,GAAG,iBAAiB,EAAE;QAC9B,MAAM,EAAE;YACN,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB;QACD,MAAM,EAAE;YACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;YACrC,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;YACzC,YAAY,EAAE,YAAY;SAC3B;QACD,OAAO,EAAE;YACP,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;SAC3C;KACF;IACD,UAAU,EAAE;QACV,GAAG,EAAE,KAAK;KACX;IACD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAA4B;IACpD,YAAY,EAAE;QACZ,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,CAAC,IAAI,CAAC;KAChB;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/business-productivity/urban-water-monitor/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CAsBtF"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/business-productivity/urban-water-monitor/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAI3D,wBAAgB,sCAAsC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA8BtF"}
@@ -1,3 +1,4 @@
1
+ import { resolveAuthFlow } from '@ankhorage/contracts/auth';
1
2
  import { DEFAULT_TEMPLATE_VERSION } from '../../../../../internal/defaults';
2
3
  import { createManifestShell, createTheme } from '../../../../shared';
3
4
  import { createUrbanWaterMonitorNavigator, createUrbanWaterMonitorScreenIds } from './routes';
@@ -13,13 +14,20 @@ export function createUrbanWaterMonitorStarterTemplate(seed) {
13
14
  navigator: createUrbanWaterMonitorNavigator(screenIds),
14
15
  screens: createUrbanWaterMonitorScreens(idPrefix, screenIds),
15
16
  });
17
+ const auth = manifest.infra.auth;
18
+ if (auth === undefined) {
19
+ return manifest;
20
+ }
16
21
  return {
17
22
  ...manifest,
18
- settings: {
19
- ...manifest.settings,
20
- authFlow: {
21
- ...manifest.settings.authFlow,
22
- postSignInRoute: 'index',
23
+ infra: {
24
+ ...manifest.infra,
25
+ auth: {
26
+ ...auth,
27
+ flow: {
28
+ ...resolveAuthFlow(auth.flow),
29
+ postSignInRoute: 'index',
30
+ },
23
31
  },
24
32
  },
25
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/business-productivity/urban-water-monitor/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,UAAU,sCAAsC,CAAC,IAAkB;IACvE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,sBAAsB,CAAC;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,gCAAgC,CAAC,SAAS,CAAC;QACtD,OAAO,EAAE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC;KAC7D,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,QAAQ,EAAE;gBACR,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAC7B,eAAe,EAAE,OAAO;aACzB;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/business-productivity/urban-water-monitor/template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,gCAAgC,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAE3D,MAAM,UAAU,sCAAsC,CAAC,IAAkB;IACvE,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,sBAAsB,CAAC;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,gCAAgC,CAAC,SAAS,CAAC;QACtD,OAAO,EAAE,8BAA8B,CAAC,QAAQ,EAAE,SAAS,CAAC;KAC7D,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,GAAG,QAAQ;QACX,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,IAAI,EAAE;oBACJ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC7B,eAAe,EAAE,OAAO;iBACzB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA4DzF"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAO3D,wBAAgB,yCAAyC,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,CA8CzF"}
@@ -26,10 +26,6 @@ export function createNutritionCatalogScanStarterTemplate(seed) {
26
26
  auth: {
27
27
  scope: 'global',
28
28
  provider: 'supabase',
29
- authorization: {
30
- kind: 'RBAC',
31
- engine: 'native',
32
- },
33
29
  flow: {
34
30
  signInRoute: 'sign-in',
35
31
  signUpRoute: 'sign-up',
@@ -53,16 +49,6 @@ export function createNutritionCatalogScanStarterTemplate(seed) {
53
49
  },
54
50
  },
55
51
  },
56
- settings: {
57
- ...manifest.settings,
58
- authFlow: {
59
- signInRoute: 'sign-in',
60
- signUpRoute: 'sign-up',
61
- signOutRoute: 'sign-out',
62
- postSignInRoute: '/products',
63
- unauthorizedRoute: 'sign-in',
64
- },
65
- },
66
52
  };
67
53
  }
68
54
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,qCAAqC,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,wBAAwB;QAC9B,YAAY,EAAE,kCAAkC,CAAC,QAAQ,CAAC;QAC1D,WAAW,EAAE,qCAAqC,EAAE;QACpD,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE;oBACb,IAAI,EAAE,MAAM;oBACZ,MAAM,EAAE,QAAQ;iBACjB;gBACD,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,UAAU;oBACxB,eAAe,EAAE,WAAW;oBAC5B,iBAAiB,EAAE,SAAS;iBAC7B;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,CAAC,OAAO,CAAC;iBACvB;gBACD,MAAM,EAAE;oBACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;oBACpD,YAAY,EAAE,qBAAqB;iBACpC;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,YAAY;oBACxB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;QACD,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,QAAQ,EAAE;gBACR,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,SAAS;gBACtB,YAAY,EAAE,UAAU;gBACxB,eAAe,EAAE,WAAW;gBAC5B,iBAAiB,EAAE,SAAS;aAC7B;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../../../../src/templates/starter/categories/food-drink/nutrition-catalog-scan/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,qCAAqC,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,mCAAmC,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AACpG,OAAO,EAAE,iCAAiC,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,UAAU,yCAAyC,CAAC,IAAkB;IAC1E,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,yBAAyB,CAAC;IAC3D,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,mCAAmC,CAAC,QAAQ,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI;QACJ,KAAK;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,wBAAwB;QACjD,SAAS,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzD,OAAO,EAAE,iCAAiC,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACtE,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,QAAQ;QACX,IAAI,EAAE,wBAAwB;QAC9B,YAAY,EAAE,kCAAkC,CAAC,QAAQ,CAAC;QAC1D,WAAW,EAAE,qCAAqC,EAAE;QACpD,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,KAAK,EAAE,QAAQ;gBACf,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE;oBACJ,WAAW,EAAE,SAAS;oBACtB,WAAW,EAAE,SAAS;oBACtB,YAAY,EAAE,UAAU;oBACxB,eAAe,EAAE,WAAW;oBAC5B,iBAAiB,EAAE,SAAS;iBAC7B;gBACD,MAAM,EAAE;oBACN,WAAW,EAAE,CAAC,OAAO,CAAC;iBACvB;gBACD,MAAM,EAAE;oBACN,cAAc,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC;oBACpD,YAAY,EAAE,qBAAqB;iBACpC;gBACD,OAAO,EAAE;oBACP,MAAM,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC;oBAC7C,KAAK,EAAE,UAAU;oBACjB,UAAU,EAAE,YAAY;oBACxB,cAAc,EAAE,SAAS;oBACzB,cAAc,EAAE,KAAK;iBACtB;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ankhorage/templates",
3
- "version": "1.9.2",
3
+ "version": "2.0.0",
4
4
  "description": "Reusable Ankhorage app templates, presets, and manifest generators.",
5
5
  "homepage": "https://github.com/ankhorage/templates#readme",
6
6
  "bugs": {
@@ -57,6 +57,9 @@
57
57
  },
58
58
  "scripts": {
59
59
  "build": "bun x tsc -p tsconfig.json",
60
+ "changeset": "changeset",
61
+ "changeset:status": "changeset status --since=origin/main",
62
+ "docs": "bunx @ankhorage/paradox@0.1.16",
60
63
  "knip": "ankhorage-knip",
61
64
  "lint": "ankhorage-eslint . --max-warnings=0",
62
65
  "lint:fix": "ankhorage-eslint . --max-warnings=0 --fix",
@@ -68,12 +71,13 @@
68
71
  "version-packages": "changeset version"
69
72
  },
70
73
  "dependencies": {
71
- "@ankhorage/contracts": "^1.19.0",
74
+ "@ankhorage/contracts": "^2.0.0",
72
75
  "@ankhorage/zora": "^2.8.0"
73
76
  },
74
77
  "devDependencies": {
75
78
  "@ankhorage/ankh": "^0.4.0",
76
79
  "@ankhorage/devtools": "^1.0.6",
80
+ "@ankhorage/paradox": "^0.1.16",
77
81
  "@changesets/cli": "^2.31.0",
78
82
  "@types/bun": "^1.3.13",
79
83
  "@types/node": "^25.2.3",