@stacksjs/features 0.75.143 → 0.75.144

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/dist/index.d.ts CHANGED
@@ -19,14 +19,7 @@ export declare function migrationTable(filename: string): string | null;
19
19
  * always runs). Used by the migration runner's gating pass.
20
20
  */
21
21
  export declare function migrationFeature(filename: string): FeatureName | null;
22
- /**
23
- * True when an application-owned, top-level model explicitly declares a table.
24
- * This lets apps intentionally use generic names such as `payments` without
25
- * their migrations being mistaken for disabled framework-feature scaffolding.
26
- * Root models listed in FEATURE_FILES remain feature-owned and do not override
27
- * the gate.
28
- */
29
- export declare function appModelClaimsTable(table: string, root?: string): boolean;
22
+ export declare function appModelClaimsTable(table: string, root?: string, templateRoot?: string): boolean;
30
23
  /**
31
24
  * Per-feature stamped file/directory manifest. Paths are relative to the
32
25
  * project root and mirror the layout that `./buddy new` lays down. Entries
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // @bun
2
- import{existsSync as c,readdirSync as d,readFileSync as l}from"fs";import{join as n}from"path";import{projectPath as m}from"@stacksjs/path";var r=["dashboard","commerce","cms","forms","marketing","monitoring","realtime","queue"];var u={forms:["app/Models/Forms/"],cms:["app/Actions/Cms/","app/Actions/Dashboard/Content/","app/Actions/Dashboard/dashboard-response.ts","app/Models/Content/","app/Models/Tag.ts","app/Models/Comment.ts","resources/views/dashboard/content/"],commerce:["app/Actions/Commerce/","app/Actions/Dashboard/Commerce/","app/Actions/Dashboard/dashboard-response.ts","app/Models/commerce/","app/Models/PaymentMethod.ts","app/Models/PaymentProduct.ts","app/Models/PaymentTransaction.ts","app/Models/Subscriber.ts","app/Models/SubscriberEmail.ts","app/Models/Subscription.ts","resources/components/Dashboard/Commerce/","resources/views/dashboard/commerce/"],dashboard:["app/Actions/Dashboard/","app/Models/Board.ts","app/Models/BoardColumn.ts","app/Models/Card.ts","app/Models/CardAttachment.ts","app/Models/CardComment.ts","app/Models/FeedbackToken.ts","app/Models/Label.ts","app/Models/Log.ts","app/Models/Request.ts","resources/components/Dashboard/","resources/views/dashboard/","routes/dashboard.ts","routes/dashboard-api.ts"],marketing:["app/Actions/Dashboard/Marketing/","app/Actions/Dashboard/dashboard-response.ts","app/Models/Campaign.ts","app/Models/CampaignSend.ts","app/Models/CampaignVariant.ts","app/Models/EmailList.ts","app/Models/EmailListSubscriber.ts","app/Models/MailPreference.ts","app/Models/SocialPost.ts","resources/components/Marketing/","resources/views/dashboard/marketing/"],monitoring:["app/Actions/Monitoring/","app/Actions/TestErrorAction.ts","app/Models/Error.ts","functions/monitoring/","resources/views/dashboard/monitoring/","resources/views/dashboard/errors/"],realtime:["app/Actions/Realtime/","app/Actions/Dashboard/Realtime/","app/Actions/Dashboard/dashboard-response.ts","app/Models/realtime/","app/Broadcasts/","functions/realtime/","resources/views/dashboard/realtime/"],queue:["app/Actions/Queue/","app/Actions/Dashboard/Jobs/","app/Actions/Dashboard/dashboard-response.ts","app/Jobs/","app/Models/Job.ts","app/Models/FailedJob.ts","functions/jobs.ts","resources/views/dashboard/queue/","resources/views/dashboard/jobs/"]},b={forms:["forms","form_fields","form_submissions"],cms:["posts","pages","comments","tags","authors","taggable_models","commentables","page_revisions","redirects","menus","menu_items"],commerce:["categories","products","product_variants","product_units","manufacturers","orders","order_items","order_idempotency","carts","cart_items","payments","payment_methods","payment_products","payment_transactions","payment_webhook_events","customers","subscribers","subscriber_emails","subscriptions","gift_cards","coupons","transactions","reviews","couriers","courier_pings","delivery_routes","delivery_stops","digital_deliveries","shipping_methods","shipping_rates","shipping_zones","license_keys","loyalty_points","loyalty_rewards","print_devices","receipts","tax_rates","waitlist_products","waitlist_restaurants","auctions","auction_items","bids","pledges"],dashboard:["boards","board_columns","cards","card_labels","card_assignees","card_comments","labels","card_attachments","feedback_tokens","ci_run_states","ci_runner_samples","ci_runner_alert_states","requests","logs"],marketing:["campaigns","campaign_sends","email_lists","email_list_subscribers","social_posts","mail_preferences","campaign_variants"],monitoring:["errors"],realtime:["websockets"],queue:["jobs","failed_jobs"]};function _(a){let t=a.match(/-in-([a-z0-9_]+)\.sql$/i);if(t)return t[1]??null;let s=a.match(/-create-([a-z0-9_]+)-table\.sql$/i);if(s)return s[1]??null;let o=a.match(/-alter-([a-z0-9_]+)-/i);if(o)return o[1]??null;return null}function y(a){let t=_(a);if(!t)return null;for(let s of r)if(b[s].includes(t))return s;return null}function E(a,t=m()){let s=n(t,"app/Models");if(!c(s))return!1;let o=new Set(r.flatMap((e)=>u[e]).filter((e)=>e.startsWith("app/Models/")&&!e.endsWith("/"))),i=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),p=new RegExp(`\\btable\\s*:\\s*['"]${i}['"]`);for(let e of d(s,{withFileTypes:!0})){if(!e.isFile()||!/\.[cm]?[jt]s$/.test(e.name))continue;if(o.has(`app/Models/${e.name}`))continue;if(p.test(l(n(s,e.name),"utf8")))return!0}return!1}export{u as FEATURE_FILES,r as FEATURE_NAMES,b as FEATURE_TABLES,E as appModelClaimsTable,y as migrationFeature,_ as migrationTable};
2
+ import{existsSync as c,readdirSync as u,readFileSync as i}from"fs";import{join as n}from"path";import{frameworkPath as b,projectPath as _}from"@stacksjs/path";var o=["dashboard","commerce","cms","forms","marketing","monitoring","realtime","queue"];var h={forms:["app/Models/Forms/"],cms:["app/Actions/Cms/","app/Actions/Dashboard/Content/","app/Actions/Dashboard/dashboard-response.ts","app/Models/Content/","app/Models/Tag.ts","app/Models/Comment.ts","resources/views/dashboard/content/"],commerce:["app/Actions/Commerce/","app/Actions/Dashboard/Commerce/","app/Actions/Dashboard/dashboard-response.ts","app/Models/commerce/","app/Models/PaymentMethod.ts","app/Models/PaymentProduct.ts","app/Models/PaymentTransaction.ts","app/Models/Subscriber.ts","app/Models/SubscriberEmail.ts","app/Models/Subscription.ts","resources/components/Dashboard/Commerce/","resources/views/dashboard/commerce/"],dashboard:["app/Actions/Dashboard/","app/Models/Board.ts","app/Models/BoardColumn.ts","app/Models/Card.ts","app/Models/CardAttachment.ts","app/Models/CardComment.ts","app/Models/FeedbackToken.ts","app/Models/Label.ts","app/Models/Log.ts","app/Models/Request.ts","resources/components/Dashboard/","resources/views/dashboard/","routes/dashboard.ts","routes/dashboard-api.ts"],marketing:["app/Actions/Dashboard/Marketing/","app/Actions/Dashboard/dashboard-response.ts","app/Models/Campaign.ts","app/Models/CampaignSend.ts","app/Models/CampaignVariant.ts","app/Models/EmailList.ts","app/Models/EmailListSubscriber.ts","app/Models/MailPreference.ts","app/Models/SocialPost.ts","resources/components/Marketing/","resources/views/dashboard/marketing/"],monitoring:["app/Actions/Monitoring/","app/Actions/TestErrorAction.ts","app/Models/Error.ts","functions/monitoring/","resources/views/dashboard/monitoring/","resources/views/dashboard/errors/"],realtime:["app/Actions/Realtime/","app/Actions/Dashboard/Realtime/","app/Actions/Dashboard/dashboard-response.ts","app/Models/realtime/","app/Broadcasts/","functions/realtime/","resources/views/dashboard/realtime/"],queue:["app/Actions/Queue/","app/Actions/Dashboard/Jobs/","app/Actions/Dashboard/dashboard-response.ts","app/Jobs/","app/Models/Job.ts","app/Models/FailedJob.ts","functions/jobs.ts","resources/views/dashboard/queue/","resources/views/dashboard/jobs/"]},f={forms:["forms","form_fields","form_submissions"],cms:["posts","pages","comments","tags","authors","taggable_models","commentables","page_revisions","redirects","menus","menu_items"],commerce:["categories","products","product_variants","product_units","manufacturers","orders","order_items","order_idempotency","carts","cart_items","payments","payment_methods","payment_products","payment_transactions","payment_webhook_events","customers","subscribers","subscriber_emails","subscriptions","gift_cards","coupons","transactions","reviews","couriers","courier_pings","delivery_routes","delivery_stops","digital_deliveries","shipping_methods","shipping_rates","shipping_zones","license_keys","loyalty_points","loyalty_rewards","print_devices","receipts","tax_rates","waitlist_products","waitlist_restaurants","auctions","auction_items","bids","pledges"],dashboard:["boards","board_columns","cards","card_labels","card_assignees","card_comments","labels","card_attachments","feedback_tokens","ci_run_states","ci_runner_samples","ci_runner_alert_states","requests","logs"],marketing:["campaigns","campaign_sends","email_lists","email_list_subscribers","social_posts","mail_preferences","campaign_variants"],monitoring:["errors"],realtime:["websockets"],queue:["jobs","failed_jobs"]};function g(a){let s=a.match(/-in-([a-z0-9_]+)\.sql$/i);if(s)return s[1]??null;let t=a.match(/-create-([a-z0-9_]+)-table\.sql$/i);if(t)return t[1]??null;let r=a.match(/-alter-([a-z0-9_]+)-/i);if(r)return r[1]??null;return null}function v(a){let s=g(a);if(!s)return null;for(let t of o)if(f[t].includes(s))return t;return null}function M(a,s){if(!c(s))return!1;try{return i(a).equals(i(s))}catch{return!1}}function C(a,s=_(),t=b("defaults")){let r=n(s,"app/Models");if(!c(r))return!1;let d=new Set(o.flatMap((e)=>h[e]).filter((e)=>e.startsWith("app/Models/")&&!e.endsWith("/"))),l=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),m=new RegExp(`\\btable\\s*:\\s*['"]${l}['"]`);for(let e of u(r,{withFileTypes:!0})){if(!e.isFile()||!/\.[cm]?[jt]s$/.test(e.name))continue;let p=`app/Models/${e.name}`;if(d.has(p)&&M(n(r,e.name),n(t,p)))continue;if(m.test(i(n(r,e.name),"utf8")))return!0}return!1}export{h as FEATURE_FILES,o as FEATURE_NAMES,f as FEATURE_TABLES,C as appModelClaimsTable,v as migrationFeature,g as migrationTable};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/features",
3
3
  "type": "module",
4
- "version": "0.75.143",
4
+ "version": "0.75.144",
5
5
  "description": "Which files and tables belong to which optional Stacks feature.",
6
6
  "author": "Chris Breuer",
7
7
  "contributors": [
@@ -50,6 +50,6 @@
50
50
  "typecheck": "bun --bun tsc --noEmit"
51
51
  },
52
52
  "dependencies": {
53
- "@stacksjs/path": "0.75.143"
53
+ "@stacksjs/path": "0.75.144"
54
54
  }
55
55
  }