@wix/himalaya-cli 0.1032.0 → 0.1034.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.
Files changed (128) hide show
  1. package/dist/cli.mjs +0 -2
  2. package/guides/getting-started.md +6 -2
  3. package/guides/wix-site-to-himi-app.md +9 -1
  4. package/package.json +2 -2
  5. package/templates/beauty-salon/dev/index.ts +398 -1
  6. package/templates/beauty-salon/tier5-src/_shared/collection-contract.ts +4 -1
  7. package/templates/beauty-salon/tier5-src/_shared/collection-service.ts +36 -5
  8. package/templates/beauty-salon/tier5-src/_shared/empty-flags.ts +33 -0
  9. package/templates/beauty-salon/tier5-src/himi-store-saved/index.ts +3 -2
  10. package/templates/beauty-salon/tier5-src/wix-spaces-collections/index.ts +3 -2
  11. package/templates/beauty-salon/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  12. package/templates/beauty-salon/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  13. package/templates/beauty-salon-owner/dev/index.ts +1216 -0
  14. package/templates/beauty-salon-owner/tier5-src/_shared/collection-contract.ts +4 -1
  15. package/templates/beauty-salon-owner/tier5-src/_shared/collection-service.ts +36 -5
  16. package/templates/branded-lite/dev/index.ts +2239 -343
  17. package/templates/branded-lite/tier5-src/_shared/branded-load-state.ts +106 -0
  18. package/templates/branded-lite/tier5-src/_shared/collection-contract.ts +4 -1
  19. package/templates/branded-lite/tier5-src/_shared/collection-service.ts +36 -5
  20. package/templates/branded-lite/tier5-src/_shared/empty-flags.ts +33 -0
  21. package/templates/branded-lite/tier5-src/himi-branded-lite-badges/index.ts +20 -16
  22. package/templates/branded-lite/tier5-src/himi-branded-lite-coupons/index.ts +20 -20
  23. package/templates/branded-lite/tier5-src/himi-branded-lite-donations/index.ts +20 -16
  24. package/templates/branded-lite/tier5-src/himi-branded-lite-forms/index.ts +23 -31
  25. package/templates/branded-lite/tier5-src/himi-branded-lite-galleries/index.ts +19 -14
  26. package/templates/branded-lite/tier5-src/himi-branded-lite-giftcards/index.ts +20 -16
  27. package/templates/branded-lite/tier5-src/himi-branded-lite-inbox/index.ts +20 -15
  28. package/templates/branded-lite/tier5-src/himi-branded-lite-invoices/index.ts +20 -16
  29. package/templates/branded-lite/tier5-src/himi-branded-lite-loyalty/index.ts +20 -17
  30. package/templates/branded-lite/tier5-src/himi-branded-lite-notifications/index.ts +20 -18
  31. package/templates/branded-lite/tier5-src/himi-branded-lite-notifsettings/index.ts +23 -19
  32. package/templates/branded-lite/tier5-src/himi-branded-lite-podcasts/index.ts +1 -1
  33. package/templates/branded-lite/tier5-src/himi-branded-lite-reservations/index.ts +24 -20
  34. package/templates/branded-lite/tier5-src/himi-branded-lite-reviews/index.ts +20 -17
  35. package/templates/branded-lite/tier5-src/himi-branded-lite-videos/index.ts +19 -15
  36. package/templates/branded-lite/tier5-src/himi-store-saved/index.ts +3 -2
  37. package/templates/branded-lite/tier5-src/wix-spaces-collections/index.ts +3 -2
  38. package/templates/branded-lite/tier5-src/wix-spaces-forum/index.ts +3 -2
  39. package/templates/branded-lite/tier5-src/wix-spaces-members/index.ts +19 -6
  40. package/templates/branded-lite/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  41. package/templates/branded-lite/tier5-src/wix-spaces-new-message/index.ts +3 -2
  42. package/templates/branded-lite/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  43. package/templates/community-club/dev/index.ts +283 -2
  44. package/templates/community-club/tier5-src/_shared/collection-contract.ts +4 -1
  45. package/templates/community-club/tier5-src/_shared/collection-service.ts +36 -5
  46. package/templates/community-club/tier5-src/_shared/empty-flags.ts +33 -0
  47. package/templates/community-club/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  48. package/templates/community-club-owner/dev/index.ts +1216 -0
  49. package/templates/community-club-owner/tier5-src/_shared/collection-contract.ts +4 -1
  50. package/templates/community-club-owner/tier5-src/_shared/collection-service.ts +36 -5
  51. package/templates/events-meetups/dev/index.ts +197 -1
  52. package/templates/events-meetups/tier5-src/_shared/collection-contract.ts +4 -1
  53. package/templates/events-meetups/tier5-src/_shared/collection-service.ts +36 -5
  54. package/templates/events-meetups/tier5-src/_shared/empty-flags.ts +33 -0
  55. package/templates/events-meetups/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  56. package/templates/events-meetups-owner/dev/index.ts +1088 -0
  57. package/templates/events-meetups-owner/tier5-src/_shared/collection-contract.ts +4 -1
  58. package/templates/events-meetups-owner/tier5-src/_shared/collection-service.ts +36 -5
  59. package/templates/gym-fitness/dev/index.ts +462 -1
  60. package/templates/gym-fitness/tier5-src/_shared/collection-contract.ts +4 -1
  61. package/templates/gym-fitness/tier5-src/_shared/collection-service.ts +36 -5
  62. package/templates/gym-fitness/tier5-src/_shared/empty-flags.ts +33 -0
  63. package/templates/gym-fitness/tier5-src/himi-store-saved/index.ts +3 -2
  64. package/templates/gym-fitness/tier5-src/wix-spaces-collections/index.ts +3 -2
  65. package/templates/gym-fitness/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  66. package/templates/gym-fitness/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  67. package/templates/gym-fitness-owner/dev/index.ts +1280 -0
  68. package/templates/gym-fitness-owner/tier5-src/_shared/collection-contract.ts +4 -1
  69. package/templates/gym-fitness-owner/tier5-src/_shared/collection-service.ts +36 -5
  70. package/templates/nonprofit-cause/dev/index.ts +264 -1
  71. package/templates/nonprofit-cause/tier5-src/_shared/collection-contract.ts +4 -1
  72. package/templates/nonprofit-cause/tier5-src/_shared/collection-service.ts +36 -5
  73. package/templates/nonprofit-cause/tier5-src/_shared/empty-flags.ts +33 -0
  74. package/templates/nonprofit-cause/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  75. package/templates/nonprofit-cause/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  76. package/templates/nonprofit-cause-owner/dev/index.ts +1152 -0
  77. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-contract.ts +4 -1
  78. package/templates/nonprofit-cause-owner/tier5-src/_shared/collection-service.ts +36 -5
  79. package/templates/owner-lite/dev/index.ts +1280 -0
  80. package/templates/owner-lite/tier5-src/_shared/collection-contract.ts +4 -1
  81. package/templates/owner-lite/tier5-src/_shared/collection-service.ts +36 -5
  82. package/templates/podcast-creator/dev/index.ts +286 -23
  83. package/templates/podcast-creator/tier5-src/_shared/collection-contract.ts +4 -1
  84. package/templates/podcast-creator/tier5-src/_shared/collection-service.ts +36 -5
  85. package/templates/podcast-creator/tier5-src/_shared/empty-flags.ts +33 -0
  86. package/templates/podcast-creator/tier5-src/himi-branded-lite-podcasts/index.ts +1 -1
  87. package/templates/podcast-creator/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  88. package/templates/podcast-creator/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  89. package/templates/podcast-creator-owner/dev/index.ts +1216 -0
  90. package/templates/podcast-creator-owner/tier5-src/_shared/collection-contract.ts +4 -1
  91. package/templates/podcast-creator-owner/tier5-src/_shared/collection-service.ts +36 -5
  92. package/templates/portfolio-creative/dev/index.ts +353 -23
  93. package/templates/portfolio-creative/tier5-src/_shared/collection-contract.ts +4 -1
  94. package/templates/portfolio-creative/tier5-src/_shared/collection-service.ts +36 -5
  95. package/templates/portfolio-creative/tier5-src/_shared/empty-flags.ts +33 -0
  96. package/templates/portfolio-creative/tier5-src/himi-store-saved/index.ts +3 -2
  97. package/templates/portfolio-creative/tier5-src/wix-spaces-collections/index.ts +3 -2
  98. package/templates/portfolio-creative/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  99. package/templates/portfolio-creative-owner/dev/index.ts +1216 -0
  100. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-contract.ts +4 -1
  101. package/templates/portfolio-creative-owner/tier5-src/_shared/collection-service.ts +36 -5
  102. package/templates/restaurant/dev/index.ts +197 -1
  103. package/templates/restaurant/tier5-src/_shared/collection-contract.ts +4 -1
  104. package/templates/restaurant/tier5-src/_shared/collection-service.ts +36 -5
  105. package/templates/restaurant/tier5-src/_shared/empty-flags.ts +33 -0
  106. package/templates/restaurant/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  107. package/templates/restaurant-owner/dev/index.ts +1280 -0
  108. package/templates/restaurant-owner/tier5-src/_shared/collection-contract.ts +4 -1
  109. package/templates/restaurant-owner/tier5-src/_shared/collection-service.ts +36 -5
  110. package/templates/retail-store/dev/index.ts +203 -1
  111. package/templates/retail-store/tier5-src/_shared/collection-contract.ts +4 -1
  112. package/templates/retail-store/tier5-src/_shared/collection-service.ts +36 -5
  113. package/templates/retail-store/tier5-src/_shared/empty-flags.ts +33 -0
  114. package/templates/retail-store/tier5-src/himi-store-saved/index.ts +3 -2
  115. package/templates/retail-store/tier5-src/wix-spaces-collections/index.ts +3 -2
  116. package/templates/retail-store/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  117. package/templates/retail-store-owner/dev/index.ts +1152 -0
  118. package/templates/retail-store-owner/tier5-src/_shared/collection-contract.ts +4 -1
  119. package/templates/retail-store-owner/tier5-src/_shared/collection-service.ts +36 -5
  120. package/templates/yoga-studio/dev/index.ts +392 -1
  121. package/templates/yoga-studio/tier5-src/_shared/collection-contract.ts +4 -1
  122. package/templates/yoga-studio/tier5-src/_shared/collection-service.ts +36 -5
  123. package/templates/yoga-studio/tier5-src/_shared/empty-flags.ts +33 -0
  124. package/templates/yoga-studio/tier5-src/wix-spaces-my-subscriptions/index.ts +11 -2
  125. package/templates/yoga-studio/tier5-src/wix-spaces-whats-new/index.ts +3 -2
  126. package/templates/yoga-studio-owner/dev/index.ts +1152 -0
  127. package/templates/yoga-studio-owner/tier5-src/_shared/collection-contract.ts +4 -1
  128. package/templates/yoga-studio-owner/tier5-src/_shared/collection-service.ts +36 -5
@@ -1,5 +1,6 @@
1
1
  // Tier-5 bundle: Wix Spaces clone — My Subscriptions / plan orders (site-scoped).
2
2
  import { defineService } from "@himalaya/state";
3
+ import { withEmptyFlags } from "../_shared/empty-flags.js";
3
4
  import { dispatch } from "@himalaya/dispatch";
4
5
  import { listPlanOrders, type WixPlanOrder } from "@himalaya/wix-pricing-plans";
5
6
 
@@ -21,6 +22,10 @@ const EMPTY_MEMBER = "No subscriptions yet";
21
22
  const EMPTY_GUEST = "Sign in from Account to see subscriptions you’ve joined — we don’t invent sample memberships.";
22
23
  const EMPTY_FORBIDDEN = "No subscriptions for this member yet.";
23
24
 
25
+ /** The signed-in member's email, or "" for anyone else. A visitor's identity is
26
+ * `{ email: "" }` and a failed lookup proves nothing, so both read as "no member": the
27
+ * plan-orders endpoint is not member-filtered, and calling it for a visitor would list
28
+ * orders that are not theirs. Fail closed. */
24
29
  async function sessionEmail(): Promise<string> {
25
30
  try {
26
31
  const identity = await dispatch("himi.wix.memberIdentity") as unknown;
@@ -38,12 +43,16 @@ function looksForbidden(err: unknown): boolean {
38
43
  return /403|FORBIDDEN|permission|denied|UNAUTHORIZED|401/i.test(msg);
39
44
  }
40
45
 
41
- const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesMySubscriptions", {
46
+ const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesMySubscriptions", withEmptyFlags({
42
47
  state: { status: "loading", orders: [], emptyText: "", hideAccountCta: false },
43
48
  actions: {
44
49
  load: async () => {
45
50
  const email = await sessionEmail();
46
51
  const hideAccountCta = Boolean(email);
52
+ // plan orders are a MEMBER's own. With no signed-in member there is no
53
+ // "my" to list, whatever the endpoint answers (a dev mock or a cached session can
54
+ // answer it): a visitor must never see a subscription as theirs.
55
+ if (!email) return { status: "ready", orders: [], emptyText: EMPTY_GUEST, hideAccountCta: false };
47
56
  try {
48
57
  const r = await listPlanOrders();
49
58
  const orders = (((r as unknown as { orders?: WixPlanOrder[] }).orders) ?? []).map(norm);
@@ -68,6 +77,6 @@ const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesMySubscripti
68
77
  }
69
78
  },
70
79
  },
71
- });
80
+ }, { orders: "noOrders" }));
72
81
  svc.load();
73
82
  export { svc };
@@ -1,5 +1,6 @@
1
1
  // Tier-5 bundle: Wix Spaces clone — What's New (ON-DEVICE, account-level).
2
2
  import { defineService } from "@himalaya/state";
3
+ import { withEmptyFlags } from "../_shared/empty-flags.js";
3
4
  import { listAnnouncements, type WixAnnouncement } from "@himalaya/wix-new-releases";
4
5
 
5
6
  interface Row { id: string; name: string; subtitle: string }
@@ -10,7 +11,7 @@ function norm(a: WixAnnouncement, i: number): Row {
10
11
  return { id: aa.id || `a${i}`, name: aa.title || "Announcement", subtitle: aa.description || aa.bodyText || "" };
11
12
  }
12
13
 
13
- const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesWhatsNew", {
14
+ const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesWhatsNew", withEmptyFlags({
14
15
  state: { status: "loading", items: [], emptyText: "" },
15
16
  actions: {
16
17
  load: async (s) => {
@@ -21,6 +22,6 @@ const svc = defineService<S, { load: (s: S) => Promise<S> }>("spacesWhatsNew", {
21
22
  } catch { return { ...s, status: "ready", items: [], emptyText: "Nothing new right now" }; }
22
23
  },
23
24
  },
24
- });
25
+ }, { items: "noItems" }));
25
26
  svc.load();
26
27
  export { svc };