akanjs 3.0.0-alpha.78 → 3.0.0-alpha.79

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/index.ts CHANGED
@@ -273,6 +273,42 @@ export type AppConfigInput = Omit<DeepPartial<AppConfigResult>, "docker" | "web"
273
273
  plugins?: AkanPlugin[];
274
274
  };
275
275
  export type LibConfigInput = DeepPartial<LibConfigResult> & { plugins?: AkanPlugin[] };
276
+ export interface FleetSpokeDeclaration {
277
+ /** Short name used on the command line and as the git remote suffix. */
278
+ name: string;
279
+ repo: string;
280
+ /** Apps this spoke serves. Libraries are never listed — they are derived from each app's closure. */
281
+ apps: string[];
282
+ }
283
+
284
+ /** What a push installs in each spoke to keep hub-owned files from being edited there. */
285
+ export interface FleetGuardConfig {
286
+ /** CI system the guard job is written for. `"none"` leaves it out — wire `akan fleet check` yourself. */
287
+ ci: "github" | "none";
288
+ /** Add the `akan fleet check` line to the spoke's pre-commit hook. */
289
+ preCommit: boolean;
290
+ }
291
+
292
+ /**
293
+ * What `akan.fleet.ts` at a hub workspace root may write: the customer repos this workspace is mirrored
294
+ * to. There is no branch field — the branch is whichever one the hub is on, so one declaration serves
295
+ * every release branch and each of them holds one akanjs version and one copy of the library source.
296
+ */
297
+ export interface FleetConfigInput {
298
+ /**
299
+ * Branches a push may target. A hub feature branch is refused, because pushing it would copy the hub's
300
+ * branch namespace into every customer repo.
301
+ */
302
+ pushableBranches?: string[];
303
+ /**
304
+ * Workspace-root entries to keep out of every spoke, on top of the ones that always are. Top-level
305
+ * names or `dir/` prefixes — a hub's own release and benchmark trees are the usual entries.
306
+ */
307
+ exclude?: string[];
308
+ guard?: Partial<FleetGuardConfig>;
309
+ spokes: FleetSpokeDeclaration[];
310
+ }
311
+
276
312
  export type AppConfig = AppConfigInput | ((app: AppConfigContext) => AppConfigInput);
277
313
  export type LibConfig = LibConfigInput | ((lib: LibConfigContext) => LibConfigInput);
278
314
  export type AkanConfigFile = object;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akanjs",
3
- "version": "3.0.0-alpha.78",
3
+ "version": "3.0.0-alpha.79",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
package/types/index.d.ts CHANGED
@@ -260,6 +260,39 @@ export type AppConfigInput = Omit<DeepPartial<AppConfigResult>, "docker" | "web"
260
260
  export type LibConfigInput = DeepPartial<LibConfigResult> & {
261
261
  plugins?: AkanPlugin[];
262
262
  };
263
+ export interface FleetSpokeDeclaration {
264
+ /** Short name used on the command line and as the git remote suffix. */
265
+ name: string;
266
+ repo: string;
267
+ /** Apps this spoke serves. Libraries are never listed — they are derived from each app's closure. */
268
+ apps: string[];
269
+ }
270
+ /** What a push installs in each spoke to keep hub-owned files from being edited there. */
271
+ export interface FleetGuardConfig {
272
+ /** CI system the guard job is written for. `"none"` leaves it out — wire `akan fleet check` yourself. */
273
+ ci: "github" | "none";
274
+ /** Add the `akan fleet check` line to the spoke's pre-commit hook. */
275
+ preCommit: boolean;
276
+ }
277
+ /**
278
+ * What `akan.fleet.ts` at a hub workspace root may write: the customer repos this workspace is mirrored
279
+ * to. There is no branch field — the branch is whichever one the hub is on, so one declaration serves
280
+ * every release branch and each of them holds one akanjs version and one copy of the library source.
281
+ */
282
+ export interface FleetConfigInput {
283
+ /**
284
+ * Branches a push may target. A hub feature branch is refused, because pushing it would copy the hub's
285
+ * branch namespace into every customer repo.
286
+ */
287
+ pushableBranches?: string[];
288
+ /**
289
+ * Workspace-root entries to keep out of every spoke, on top of the ones that always are. Top-level
290
+ * names or `dir/` prefixes — a hub's own release and benchmark trees are the usual entries.
291
+ */
292
+ exclude?: string[];
293
+ guard?: Partial<FleetGuardConfig>;
294
+ spokes: FleetSpokeDeclaration[];
295
+ }
263
296
  export type AppConfig = AppConfigInput | ((app: AppConfigContext) => AppConfigInput);
264
297
  export type LibConfig = LibConfigInput | ((lib: LibConfigContext) => LibConfigInput);
265
298
  export type AkanConfigFile = object;