@beignet/cli 0.0.13 → 0.0.15

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,42 @@
1
1
  # @beignet/cli
2
2
 
3
+ ## 0.0.15
4
+
5
+ ### Patch Changes
6
+
7
+ - 73a682a: Make the type-preserving curried route-group form the canonical Beignet route
8
+ API across generated apps, docs, READMEs, and examples. `beignet doctor` now
9
+ warns when feature route groups use the direct generic form, and the direct
10
+ overload is deprecated because TypeScript erases per-route contract output
11
+ checks there.
12
+ - 2a02469: Add `createErrorReportingHooks(...)` for capturing unexpected HTTP failures
13
+ through `ctx.ports.errorReporter`, and wire generated apps to install the hook
14
+ with a no-op local reporter by default.
15
+ - 0645165: Rename the Inngest jobs provider package to `@beignet/provider-jobs-inngest` and update generated apps to use `inngestJobsProvider`.
16
+ - 2a02469: Generate MCP client configuration that launches the app-local Beignet CLI bin
17
+ instead of resolving the unrelated unscoped `beignet` package through registry
18
+ runners.
19
+ - Updated dependencies [73a682a]
20
+ - Updated dependencies [2a02469]
21
+ - Updated dependencies [7d3c980]
22
+ - @beignet/core@0.0.15
23
+
24
+ ## 0.0.14
25
+
26
+ ### Patch Changes
27
+
28
+ - edf5ddc: Add first-class entitlement primitives for product access checks, devtools-ready entitlement decision observation, and doctor checks for entitlement wiring drift. Generated billing slices expose a billing-backed entitlements port.
29
+ - d51a35f: Add the provider-neutral payments port, memory payments adapter, Stripe payments provider, Next.js payment webhook route helper, `beignet make payments`, and first-class payments devtools view.
30
+ - 2baeb36: Add payments production-readiness doctor diagnostics, including Stripe-vs-memory provider wiring checks, and generated-app conformance coverage for the payments slice.
31
+ - Updated dependencies [0b106c3]
32
+ - Updated dependencies [6828442]
33
+ - Updated dependencies [edf5ddc]
34
+ - Updated dependencies [bcd3864]
35
+ - Updated dependencies [d51a35f]
36
+ - Updated dependencies [655c101]
37
+ - Updated dependencies [bcd3864]
38
+ - @beignet/core@0.0.14
39
+
3
40
  ## 0.0.13
4
41
 
5
42
  ### Patch Changes
package/README.md CHANGED
@@ -54,6 +54,7 @@ By default the CLI creates a Next.js app with:
54
54
  - UOW, audit logging, durable idempotency, and a durable outbox drain route
55
55
  - Jobs, events, listeners, schedules, mail-backed notifications, and uploads
56
56
  - App-owned ports with provider-backed infra adapters
57
+ - No-op error reporting wired through the HTTP error reporting hook
57
58
  - Validated application use cases
58
59
  - A Beignet server wired through Next.js route handlers
59
60
  - App error helpers, auth helpers, env validation, health checks, and devtools
@@ -70,8 +71,8 @@ page and a reduced typed client.
70
71
 
71
72
  The starter ships local production-shaped defaults: Better Auth, Drizzle
72
73
  persistence, pino logging, UOW, durable idempotency, a durable outbox, audit
73
- logging, and devtools. Add external service integrations only when you want
74
- those providers:
74
+ logging, no-op error reporting, and devtools. Add external service
75
+ integrations only when you want those providers:
75
76
 
76
77
  ```bash
77
78
  bunx @beignet/cli create my-app --integrations inngest,resend
@@ -79,7 +80,7 @@ bunx @beignet/cli create my-app --integrations inngest,resend
79
80
 
80
81
  Available integrations:
81
82
 
82
- - `inngest` - Inngest-backed background jobs via `@beignet/provider-inngest`
83
+ - `inngest` - Inngest-backed background jobs via `@beignet/provider-jobs-inngest`
83
84
  - `resend` - Resend-backed mail via `@beignet/provider-mail-resend`
84
85
  - `upstash-rate-limit` - Upstash-backed rate limiting via
85
86
  `@beignet/provider-rate-limit-upstash`
@@ -169,6 +170,7 @@ beignet make factory <feature>/<name> [options]
169
170
  beignet make feature <name> [options]
170
171
  beignet make job <feature>/<name> [options]
171
172
  beignet make notification <feature>/<name> [options]
173
+ beignet make payments [options]
172
174
  beignet make listener <feature>/<name> --event <feature>/<event> [options]
173
175
  beignet make schedule <feature>/<name> [options]
174
176
  beignet make upload <feature>/<name> [options]
@@ -213,6 +215,7 @@ Options:
213
215
  --attempt 1 One-based provider attempt number for schedule runs.
214
216
  --source manual Provider or app source label for schedule runs.
215
217
  --with policy,events Add optional artifacts to `make feature`; also supports tasks, jobs, notifications, ui, uploads.
218
+ make payments Add `features/billing`, a payments webhook route, billing persistence, entitlement checks, and local memory payments provider wiring.
216
219
  --auth Add authorization metadata, policy wiring, policy tests, and use-case gate checks to `make resource`.
217
220
  --tenant Add tenant-scoped schemas, repository filters, and use-case tenant checks to `make resource`.
218
221
  --events Add created, updated, and deleted domain events to `make resource`.
@@ -633,7 +636,8 @@ instrumentation, actor, and tenant decisions as the scheduled drain route.
633
636
 
634
637
  There is intentionally no separate `beignet jobs drain` command. Outbox-backed
635
638
  jobs drain through the outbox beside durable events. Direct provider jobs should
636
- use provider-owned worker entrypoints, such as an Inngest route built with
639
+ use provider-owned worker entrypoints, such as a BullMQ worker built with
640
+ `createBullMQJobWorker(...)` or an Inngest route built with
637
641
  `createInngestJobFunction(...)`.
638
642
 
639
643
  Use `beignet schedule run` when you need to run a schedule explicitly from a
@@ -822,6 +826,15 @@ Today it detects:
822
826
  - Feature seeds without a `db:seed` package script
823
827
  - Upload definitions without an upload route
824
828
  - Upload definitions without explicit size limits
829
+ - Billing slices without a payment webhook route
830
+ - Billing checkout contracts missing idempotency metadata or an
831
+ `idempotency-key` header
832
+ - Billing webhook use cases that reference `ctx.ports.idempotency` when
833
+ `AppPorts` does not declare an idempotency port
834
+ - Entitlement checks without an `AppPorts` entitlements declaration
835
+ - Billing entitlement modules that are not wired into infra or server providers
836
+ - Stripe payments configuration paired with local memory payments provider
837
+ wiring
825
838
  - Devtools routes that are explicitly enabled without authorization
826
839
  - Cron routes that do not use `CRON_SECRET`
827
840
  - Installed provider packages without expected environment configuration
@@ -878,10 +891,11 @@ The server exposes five tools:
878
891
  artifact kinds as `beignet make`
879
892
 
880
893
  Tool outputs match the JSON the matching `--json` flags print. Generated apps
881
- ship a `.mcp.json` that registers the server through the app's package runner
882
- (`bunx` in bun apps, `npx` in npm, pnpm, and yarn apps), so Claude Code picks
883
- it up with no configuration; Cursor and VS Code users add the same command to
884
- `.cursor/mcp.json` or `.vscode/mcp.json`. Generated apps also include
894
+ ship a `.mcp.json` that runs `./node_modules/.bin/beignet mcp`, so Claude
895
+ Code picks up the app-local CLI version with no configuration; Cursor and VS
896
+ Code users add the same command to `.cursor/mcp.json` or `.vscode/mcp.json`.
897
+ For one-off usage outside an installed app, run the scoped package, such as
898
+ `bunx @beignet/cli mcp` or `npx @beignet/cli mcp`. Generated apps also include
885
899
  `AGENTS.md` and `CLAUDE.md` covering registration, generator, placement, and
886
900
  validation conventions.
887
901
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAIL,KAAK,cAAc,EAInB,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AAoBvB,KAAK,UAAU,GAAG,cAAc,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAk+CF,wBAAsB,IAAI,CACxB,MAAM,WAAwB,EAC9B,OAAO,GAAE,4BAA4B,CAAC,UAAU,CAAe,GAC9D,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAIL,KAAK,cAAc,EAInB,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,eAAe,CAAC;AAoBvB,KAAK,UAAU,GAAG,cAAc,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC,CAAC;AAqgDF,wBAAsB,IAAI,CACxB,MAAM,WAAwB,EAC9B,OAAO,GAAE,4BAA4B,CAAC,UAAU,CAAe,GAC9D,OAAO,CAAC,IAAI,CAAC,CAiBf"}
package/dist/index.js CHANGED
@@ -702,6 +702,26 @@ const makeScheduleCommand = buildCommand({
702
702
  };
703
703
  },
704
704
  });
705
+ const makePaymentsCommand = buildCommand({
706
+ docs: {
707
+ brief: "Generate a payments-backed billing slice.",
708
+ },
709
+ parameters: {
710
+ flags: makeFlagParameters,
711
+ },
712
+ loader: async () => {
713
+ const { makePayments } = await import("./make.js");
714
+ return async function runMakePayments(flags) {
715
+ const result = await makePayments({
716
+ force: Boolean(flags.force),
717
+ dryRun: Boolean(flags.dryRun),
718
+ });
719
+ writeOutput(this, flags.json
720
+ ? JSON.stringify(result, null, 2)
721
+ : makePaymentsNextSteps(result));
722
+ };
723
+ },
724
+ });
705
725
  const makeRoutes = buildRouteMap({
706
726
  docs: {
707
727
  brief: "Generate Beignet app files.",
@@ -714,6 +734,7 @@ const makeRoutes = buildRouteMap({
714
734
  feature: makeFeatureCommand,
715
735
  job: simpleMakeCommand("makeJob", "Generate a feature job.", makeJobNextSteps),
716
736
  notification: simpleMakeCommand("makeNotification", "Generate a feature notification.", makeNotificationNextSteps),
737
+ payments: makePaymentsCommand,
717
738
  listener: makeListenerCommand,
718
739
  policy: simpleMakeCommand("makePolicy", "Generate an authorization policy.", makePolicyNextSteps),
719
740
  port: simpleMakeCommand("makePort", "Generate an application port.", makePortNextSteps),
@@ -993,6 +1014,14 @@ function makeNotificationNextSteps(result) {
993
1014
  "Send the notification through ctx.ports.notifications so delivery can run inline in tests and through jobs in production.",
994
1015
  ]);
995
1016
  }
1017
+ function makePaymentsNextSteps(result) {
1018
+ return makeNextSteps(result, "billing slice", [
1019
+ "Set BILLING_TEAM_PRICE_ID in .env.local to the provider price ID for your team plan.",
1020
+ "Run beignet db generate and beignet db migrate so billing_accounts exists before handling webhooks.",
1021
+ "Use createMemoryPaymentsProvider() for local development, then swap server/providers.ts to stripePaymentsProvider when STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET are configured.",
1022
+ "Run your app's test, lint, and typecheck commands, then beignet lint and beignet doctor.",
1023
+ ]);
1024
+ }
996
1025
  function makeListenerNextSteps(result) {
997
1026
  return makeNextSteps(result, "listener", [
998
1027
  "Replace the starter handler with the event reaction.",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/inspect.js CHANGED
@@ -939,12 +939,12 @@ async function inspectCanonicalConformance(targetDir, files, config, convention,
939
939
  message: `${file} should import type { AppContext } from ${config.paths.appContext} so feature routes use the app-wide context type.`,
940
940
  });
941
941
  }
942
- if (!/defineRouteGroup\s*<\s*AppContext\s*>/.test(source)) {
942
+ if (!/defineRouteGroup\s*<\s*AppContext\s*>\s*\(\s*\)\s*\(/.test(source)) {
943
943
  diagnostics.push({
944
944
  severity: "warning",
945
945
  code: "BEIGNET_FEATURE_ROUTE_GROUP_CONTEXT",
946
946
  file,
947
- message: `${file} should call defineRouteGroup<AppContext>(...) for ordinary feature route groups, or defineRouteGroup<AppContext>()({ ... }) when group-level hooks enrich ctx.`,
947
+ message: `${file} should call defineRouteGroup<AppContext>()({ ... }) so route groups preserve per-route contract and use-case type checks.`,
948
948
  });
949
949
  }
950
950
  }
@@ -1215,6 +1215,8 @@ async function inspectProductionReadiness(targetDir, files, config, convention)
1215
1215
  }
1216
1216
  }
1217
1217
  const providerEntries = await readProviderListEntries(targetDir, files, config, sourceCache);
1218
+ const stripeMemoryProviderMismatch = await hasStripeMemoryProviderMismatch(targetDir, sourceCache, configFiles, installedPackages, providerEntries);
1219
+ diagnostics.push(...(await inspectEntitlementsProductionReadiness(targetDir, files, config, sourceCache)), ...(await inspectPaymentsProductionReadiness(targetDir, files, config, sourceCache, installedPackages, stripeMemoryProviderMismatch)));
1218
1220
  for (const provider of providerDoctorRules) {
1219
1221
  if (!installedPackages.has(provider.packageName))
1220
1222
  continue;
@@ -1268,6 +1270,98 @@ async function inspectProductionReadiness(targetDir, files, config, convention)
1268
1270
  }
1269
1271
  return diagnostics;
1270
1272
  }
1273
+ async function inspectEntitlementsProductionReadiness(targetDir, files, config, sourceCache) {
1274
+ if (!(await usesEntitlementChecks(targetDir, files, sourceCache)) ||
1275
+ (await appPortsIncludesPort(targetDir, files, config, sourceCache, "entitlements"))) {
1276
+ return [];
1277
+ }
1278
+ return [
1279
+ {
1280
+ severity: "warning",
1281
+ code: "BEIGNET_ENTITLEMENTS_PORT_MISSING",
1282
+ file: config.paths.ports,
1283
+ message: "This app checks entitlements, but AppPorts does not declare an entitlements port. Add entitlements: EntitlementsPort; and wire a provider-backed entitlement resolver before deploying paid feature gates.",
1284
+ },
1285
+ ];
1286
+ }
1287
+ async function inspectPaymentsProductionReadiness(targetDir, files, config, sourceCache, installedPackages, stripeMemoryProviderMismatch) {
1288
+ if (!(hasBillingOrPaymentsFeature(files, config) ||
1289
+ installedPackages.has("@beignet/provider-payments-stripe"))) {
1290
+ return [];
1291
+ }
1292
+ const diagnostics = [];
1293
+ if (stripeMemoryProviderMismatch) {
1294
+ diagnostics.push({
1295
+ severity: "warning",
1296
+ code: "BEIGNET_PAYMENTS_STRIPE_MEMORY_PROVIDER",
1297
+ file: serverProviderFiles(files, config)[0] ?? config.paths.server,
1298
+ message: "@beignet/provider-payments-stripe is installed and Stripe env/config is present, but server/providers.ts still registers memory payments. Register stripePaymentsProvider before deploying Stripe-backed billing, or remove the Stripe provider/config until the app is ready to switch.",
1299
+ });
1300
+ }
1301
+ if (!(await hasPaymentWebhookRoute(targetDir, files, config, sourceCache))) {
1302
+ diagnostics.push({
1303
+ severity: "warning",
1304
+ code: "BEIGNET_PAYMENTS_WEBHOOK_ROUTE_MISSING",
1305
+ file: directoryPath(config.paths.routes),
1306
+ message: "This app appears to use payments, but no route calls createPaymentWebhookRoute(...) or createWebhookRoute(...) for payments. Expose payment webhooks under app/api/webhooks/payments/route.ts or an equivalent configured route so provider events can update billing state.",
1307
+ });
1308
+ }
1309
+ const billingContractsFile = `${directoryPath(config.paths.features)}/billing/contracts.ts`;
1310
+ if (files.includes(billingContractsFile)) {
1311
+ const source = await readCachedSource(targetDir, billingContractsFile, sourceCache);
1312
+ const checkoutContract = exportedConstInitializer(source, "createCheckoutSession");
1313
+ if (checkoutContract &&
1314
+ !(/\bidempotency\s*:/.test(checkoutContract) &&
1315
+ /["']idempotency-key["']/.test(checkoutContract))) {
1316
+ diagnostics.push({
1317
+ severity: "warning",
1318
+ code: "BEIGNET_BILLING_CHECKOUT_IDEMPOTENCY_MISSING",
1319
+ file: billingContractsFile,
1320
+ contract: "createCheckoutSession",
1321
+ message: "The billing checkout contract appears to create payment sessions without idempotency metadata and an idempotency-key header. Mark checkout as idempotent so retries do not create duplicate payment sessions.",
1322
+ });
1323
+ }
1324
+ }
1325
+ const billingUseCasesFile = `${directoryPath(config.paths.features)}/billing/use-cases/index.ts`;
1326
+ if (files.includes(billingUseCasesFile)) {
1327
+ const source = await readCachedSource(targetDir, billingUseCasesFile, sourceCache);
1328
+ if (/\bctx\.ports\.idempotency\b/.test(source) &&
1329
+ !(await appPortsIncludesIdempotency(targetDir, files, config, sourceCache))) {
1330
+ diagnostics.push({
1331
+ severity: "warning",
1332
+ code: "BEIGNET_BILLING_IDEMPOTENCY_PORT_MISSING",
1333
+ file: config.paths.ports,
1334
+ message: "Billing use cases reference ctx.ports.idempotency, but AppPorts does not declare an idempotency port. Add idempotency to AppPorts and provider wiring, or remove the stale billing workflow dependency.",
1335
+ });
1336
+ }
1337
+ }
1338
+ const billingEntitlementsFile = `${directoryPath(config.paths.features)}/billing/entitlements.ts`;
1339
+ if (files.includes(billingEntitlementsFile) &&
1340
+ !(await hasBillingEntitlementsProviderWiring(targetDir, files, config, sourceCache))) {
1341
+ diagnostics.push({
1342
+ severity: "warning",
1343
+ code: "BEIGNET_BILLING_ENTITLEMENTS_PROVIDER_MISSING",
1344
+ file: path.dirname(config.paths.infrastructurePorts),
1345
+ message: "features/billing/entitlements.ts exists, but no infra or server provider appears to call createBillingEntitlements(...). Wire the billing-backed entitlements port into AppPorts so paid feature gates use app billing state.",
1346
+ });
1347
+ }
1348
+ return diagnostics;
1349
+ }
1350
+ async function hasStripeMemoryProviderMismatch(targetDir, sourceCache, configFiles, installedPackages, providerEntries) {
1351
+ if (!installedPackages.has("@beignet/provider-payments-stripe")) {
1352
+ return false;
1353
+ }
1354
+ if (findProviderEntryIndex(providerEntries, ["stripePaymentsProvider"]) >= 0) {
1355
+ return false;
1356
+ }
1357
+ if (findProviderEntryIndex(providerEntries, [
1358
+ "createMemoryPaymentsProvider",
1359
+ "createMemoryPayments",
1360
+ ]) < 0) {
1361
+ return false;
1362
+ }
1363
+ return anyFileMatches(targetDir, configFiles, /\bSTRIPE_(?:SECRET_KEY|WEBHOOK_SECRET)\b/, sourceCache);
1364
+ }
1271
1365
  // Local-dev ranges such as the generated-app conformance vendoring point each
1272
1366
  // @beignet/* package at a different path on purpose, so they are exempt from
1273
1367
  // the declared-range comparison. Their installed versions still participate in
@@ -1380,9 +1474,14 @@ async function inspectProviderRegistrationDrift(targetDir, files, config, conven
1380
1474
  const providerFiles = serverProviderFiles(files, config);
1381
1475
  const sourceCache = new Map();
1382
1476
  const providerEntries = await readProviderListEntries(targetDir, files, config, sourceCache);
1477
+ const stripeMemoryProviderMismatch = await hasStripeMemoryProviderMismatch(targetDir, sourceCache, operationalConfigFiles(files, config), installedPackages, providerEntries);
1383
1478
  for (const provider of providerDoctorRules) {
1384
1479
  if (!installedPackages.has(provider.packageName))
1385
1480
  continue;
1481
+ if (provider.packageName === "@beignet/provider-payments-stripe" &&
1482
+ stripeMemoryProviderMismatch) {
1483
+ continue;
1484
+ }
1386
1485
  if (provider.variants !== undefined) {
1387
1486
  if (detectedProviderVariants(provider.variants, providerEntries).length > 0) {
1388
1487
  continue;
@@ -1671,6 +1770,90 @@ function hasBetterAuthRoute(files, config) {
1671
1770
  const routesPath = directoryPath(config.paths.routes);
1672
1771
  return files.some((file) => file.startsWith(`${routesPath}/auth/`) && file.endsWith("/route.ts"));
1673
1772
  }
1773
+ function hasBillingOrPaymentsFeature(files, config) {
1774
+ const featuresPath = directoryPath(config.paths.features);
1775
+ return files.some((file) => file.startsWith(`${featuresPath}/billing/`) ||
1776
+ file.startsWith(`${featuresPath}/payments/`));
1777
+ }
1778
+ async function hasPaymentWebhookRoute(targetDir, files, config, sourceCache) {
1779
+ const routesPath = directoryPath(config.paths.routes);
1780
+ const routeFiles = files.filter((file) => file.startsWith(`${routesPath}/`) && file.endsWith("/route.ts"));
1781
+ for (const file of routeFiles) {
1782
+ const source = await readCachedSource(targetDir, file, sourceCache);
1783
+ if (containsCallExpression(source, "createPaymentWebhookRoute")) {
1784
+ return true;
1785
+ }
1786
+ if (containsPaymentWebhookRoute(source)) {
1787
+ return true;
1788
+ }
1789
+ }
1790
+ return false;
1791
+ }
1792
+ function containsPaymentWebhookRoute(source) {
1793
+ if (!containsCallExpression(source, "createWebhookRoute"))
1794
+ return false;
1795
+ return (source.includes("payments.verifyWebhook") ||
1796
+ source.includes("paymentWebhook"));
1797
+ }
1798
+ async function appPortsIncludesIdempotency(targetDir, files, config, sourceCache) {
1799
+ return appPortsIncludesPort(targetDir, files, config, sourceCache, "idempotency");
1800
+ }
1801
+ async function appPortsIncludesPort(targetDir, files, config, sourceCache, portName) {
1802
+ if (!files.includes(config.paths.ports))
1803
+ return false;
1804
+ const source = await readCachedSource(targetDir, config.paths.ports, sourceCache);
1805
+ const declarationStart = source.search(/\bexport\s+type\s+AppPorts\b/);
1806
+ if (declarationStart < 0)
1807
+ return false;
1808
+ const bodyStart = source.indexOf("{", declarationStart);
1809
+ if (bodyStart < 0)
1810
+ return false;
1811
+ const body = balancedObjectSource(source, bodyStart);
1812
+ return (body !== undefined &&
1813
+ new RegExp(`\\b${escapeRegExp(portName)}\\s*:`).test(body));
1814
+ }
1815
+ async function usesEntitlementChecks(targetDir, files, sourceCache) {
1816
+ for (const file of files) {
1817
+ if (!/\.(?:ts|tsx|mts|cts)$/.test(file))
1818
+ continue;
1819
+ if (isTestSourceFile(file))
1820
+ continue;
1821
+ const source = await readCachedSource(targetDir, file, sourceCache);
1822
+ if (/\brequireEntitlement\s*\(/.test(source) ||
1823
+ /\bctx\.ports\.entitlements\b/.test(source)) {
1824
+ return true;
1825
+ }
1826
+ }
1827
+ return false;
1828
+ }
1829
+ async function hasBillingEntitlementsProviderWiring(targetDir, files, config, sourceCache) {
1830
+ const infraPath = path.dirname(config.paths.infrastructurePorts);
1831
+ const serverPath = path.dirname(config.paths.server);
1832
+ const candidateFiles = files.filter((file) => /\.(?:ts|tsx|mts|cts)$/.test(file) &&
1833
+ !isTestSourceFile(file) &&
1834
+ (file.startsWith(`${infraPath}/`) || file.startsWith(`${serverPath}/`)));
1835
+ for (const file of candidateFiles) {
1836
+ const source = await readCachedSource(targetDir, file, sourceCache);
1837
+ if (containsCallExpression(source, "createBillingEntitlements")) {
1838
+ return true;
1839
+ }
1840
+ }
1841
+ return false;
1842
+ }
1843
+ function isTestSourceFile(file) {
1844
+ return (/(?:^|\/)tests\//.test(file) ||
1845
+ /\.(?:test|spec)\.(?:ts|tsx|mts|cts)$/.test(file));
1846
+ }
1847
+ function exportedConstInitializer(source, exportName) {
1848
+ const declaration = new RegExp(`\\bexport\\s+const\\s+${escapeRegExp(exportName)}\\s*=`).exec(source);
1849
+ if (declaration?.index === undefined)
1850
+ return undefined;
1851
+ const start = declaration.index;
1852
+ const nextExport = /\n\s*export\s+(?:const|function|type|interface|class)\s+/g;
1853
+ nextExport.lastIndex = start + declaration[0].length;
1854
+ const next = nextExport.exec(source);
1855
+ return source.slice(start, next?.index ?? source.length);
1856
+ }
1674
1857
  function featureNameFromContractFile(file, config) {
1675
1858
  const featuresPath = directoryPath(config.paths.features);
1676
1859
  const match = new RegExp(`^${escapeRegExp(featuresPath)}/([^/]+)/contracts\\.ts$`).exec(file);