create-kumiko-app 0.4.140 → 0.4.142

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.
@@ -106,7 +106,7 @@
106
106
  },
107
107
  {
108
108
  "name": "auth-foundation",
109
- "description": "Declares the `tokenVerifier` (Bearer-token auth) and `sessionStore` extension points. Provider-features register a static `shape` plus a `build()` for tokenVerifier — mount together with at least one auth-provider-* feature (e.g. personal-access-tokens) and call `resolveTokenVerifier(deps, rawToken)` to find the matching one; sessions self-registers as the single sessionStore provider.",
109
+ "description": "Declares auth-middleware extension points: `tokenVerifier` (Bearer), `sessionStore` (revocable JWT sid), optional `tenantResolver` + `tenantExistence` for anonymous multi-tenant. Provider-features register via r.useExtension; mount auth-foundation with the matching provider features.",
110
110
  "toggleableDefault": null,
111
111
  "requires": [],
112
112
  "optionalRequires": [],
@@ -1371,7 +1371,7 @@
1371
1371
  "uiHints": {
1372
1372
  "displayLabel": "Personal Access Tokens",
1373
1373
  "category": "identity",
1374
- "recommended": false
1374
+ "recommended": true
1375
1375
  }
1376
1376
  },
1377
1377
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-kumiko-app",
3
- "version": "0.4.140",
3
+ "version": "0.4.142",
4
4
  "description": "`bun create kumiko-app <name>` — scaffold a new Kumiko app with an interactive feature picker.",
5
5
  "license": "BUSL-1.1",
6
6
  "author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
@@ -30,9 +30,9 @@
30
30
  "vendor:manifest": "bun run scripts/vendor-manifest.ts"
31
31
  },
32
32
  "dependencies": {
33
- "@cosmicdrift/kumiko-dev-server": "0.159.1",
34
- "@cosmicdrift/kumiko-framework": "0.159.1",
35
- "@cosmicdrift/kumiko-server-runtime": "0.159.1",
33
+ "@cosmicdrift/kumiko-dev-server": "0.161.0",
34
+ "@cosmicdrift/kumiko-framework": "0.161.0",
35
+ "@cosmicdrift/kumiko-server-runtime": "0.161.0",
36
36
  "@inquirer/core": "^10.0.0",
37
37
  "@inquirer/prompts": "^7.4.0"
38
38
  },
@@ -7,7 +7,6 @@
7
7
  // only actually booting the resolved set through validateBoot can.
8
8
 
9
9
  import { describe, expect, test } from "bun:test";
10
- import { createPersonalAccessTokensFeature } from "@cosmicdrift/kumiko-bundled-features/personal-access-tokens";
11
10
  import {
12
11
  createRegistry,
13
12
  type FeatureDefinition,
@@ -31,11 +30,11 @@ async function instantiateResolved(names: readonly string[]): Promise<FeatureDef
31
30
  if (!entry) continue; // mirrors index.ts:47-49 — auto-mounted core deps have no entry
32
31
  const mod = (await import(entry.importPath)) as Record<string, unknown>;
33
32
  const exp = mod[entry.exportName];
34
- instances.push(
35
- entry.callExpression.endsWith("()")
36
- ? (exp as () => FeatureDefinition)()
37
- : (exp as FeatureDefinition),
38
- );
33
+ if (typeof exp === "function") {
34
+ instances.push((exp as (...args: unknown[]) => FeatureDefinition)(...(entry.callArgs ?? [])));
35
+ } else {
36
+ instances.push(exp as FeatureDefinition);
37
+ }
39
38
  }
40
39
  return instances;
41
40
  }
@@ -56,9 +55,8 @@ describe("--yes resolved set boots (issue-1174 regression)", () => {
56
55
  const instances = await instantiateResolved(resolved.featureNames);
57
56
  // sessions (auto-included, session-list/detail screens are recommended)
58
57
  // requires auth-foundation, which the dep-resolver already pulls in
59
- // transitively — it just needs a tokenVerifier provider mounted too.
60
- // PAT is what publicstatus/money-horse mount for this today.
61
- instances.push(createPersonalAccessTokensFeature({ scopes: {} }));
58
+ // transitively — personal-access-tokens (recommended, satisfies the
59
+ // tokenVerifier boot invariant) is resolved into the set too.
62
60
  const composed = composeFeatures(instances, { includeBundled: true });
63
61
  expect(() => validateBoot(composed)).not.toThrow();
64
62
  expect(() => createRegistry(composed)).not.toThrow();
@@ -35,6 +35,13 @@ export const FEATURE_CONSTRUCTORS: Readonly<Record<string, ScaffoldFeatureEntry>
35
35
  exportName: "authFoundationFeature",
36
36
  callExpression: "authFoundationFeature",
37
37
  },
38
+ "personal-access-tokens": {
39
+ name: "personal-access-tokens",
40
+ importPath: "@cosmicdrift/kumiko-bundled-features/personal-access-tokens",
41
+ exportName: "createPersonalAccessTokensFeature",
42
+ callExpression: "createPersonalAccessTokensFeature({ scopes: {} })",
43
+ callArgs: [{ scopes: {} }],
44
+ },
38
45
  sessions: {
39
46
  name: "sessions",
40
47
  importPath: "@cosmicdrift/kumiko-bundled-features/sessions",