frontpage-host 0.3.21 → 0.3.23

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/BOOKING.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use `frontpage modules booking` to read the command list. Booking settings, forms, availability and reservations use the same service as Workspace → Bookings. The CLI uses the site's existing plan and membership rules. Admins configure settings, members/spaces and booking types. Editors manage bookings and blocks. Viewers read availability and manage their own appointment hours and authorized calendar operations through the same shared actions. Consent, private calendar-link entry and private event content require the human workspace flow.
4
4
 
5
- Start with `frontpage modules booking status --site SITE --json`. An admin must set the business time zone and availability, publish a booking type with assigned members or spaces, and turn online booking on. A member must already hold a Frontpage account and have joined the site. Use the existing Viewer role when inviting someone who only needs personal availability and calendar connections. Workspace Booking tabs are Calendar, Bookings, Booking types, Spaces, Connections and Settings. Choose joined site members directly in a type; there is no Booking Members screen. Each member sets My appointment hours in Settings for this site. Spaces has its own editor.
5
+ Start with `frontpage modules booking status --site SITE --json`. Its `providerSetup.google` and `providerSetup.outlook` flags report whether new provider setup is available for this site. Unreleased options are hidden in the workspace and shared setup calls return `provider_unavailable`. Native Booking and supported iCal links do not depend on Google/Microsoft approval. Existing connection management remains available. An admin must set the business time zone and availability, publish a booking type with assigned members or spaces, and turn online booking on. A member must already hold a Frontpage account and have joined the site. Use the existing Viewer role when inviting someone who only needs personal availability and calendar connections. Workspace Booking tabs are Calendar, Bookings, Booking types, Spaces, Connections and Settings. Choose joined site members directly in a type; there is no Booking Members screen. Each member sets My appointment hours in Settings for this site. Spaces has its own editor.
6
6
 
7
7
  ## Commands
8
8
 
@@ -56,7 +56,7 @@ Calendar consent stays with the person connecting the account. Never put OAuth c
56
56
 
57
57
  Google and Outlook import busy periods and can receive Frontpage-owned confirmed events when the owner grants write access. Private event details never reach visitors. iCal imports busy times for appointments or stays under either confirmation policy; it does not send bookings back or provide a real-time double-booking guarantee.
58
58
 
59
- Website authors use the platform Booking runtime and `data-fp-booking` containers. The agent controls surrounding HTML and CSS; the service controls forms, availability, validation, email verification and reservation state. Read the Booking module docs and use their exact starter markup. Do not use the old `data-fp-form="booking"` collector for new forms. Customers review the booking, verify their email and submit; verification creates no inventory hold. A customer management link opens a dedicated page. Viewing a link never accepts, declines or cancels a booking.
59
+ Website authors use the platform Booking runtime and `data-fp-booking` containers. The agent controls surrounding HTML and CSS; the service controls forms, availability, validation, email verification and reservation state. Read the Booking module docs and use their exact starter markup. The old `data-fp-form="booking"` collector is retired and rejects submissions. Its old confirmation links cannot confirm appointments or send invites. Historical requests remain in the Forms inbox and `frontpage inbox leads --site SITE`; this cleanup does not convert them into native reservations. Customers review the booking, verify their email and submit; verification creates no inventory hold. A customer management link opens a dedicated page. Viewing a link never accepts, declines or cancels a booking.
60
60
 
61
61
  Private external event details are available only to the connecting human in the workspace Calendar. CLI/agent calendar output remains busy times only; there is no CLI command for private event content.
62
62
 
@@ -280,11 +280,11 @@ export function formatModuleUsage(key) {
280
280
  "",
281
281
  "Actions (generic):",
282
282
  " docs Markup / agent how-to",
283
- key === "articles"
284
- ? " request-setup No setup needed; makes no changes"
285
- : " request-setup Amber bar in the editor (CLI cannot show it)",
283
+ ...(def.genericActions.includes("request-setup") ? [key === "articles"
284
+ ? " request-setup No setup needed; makes no changes"
285
+ : " request-setup Amber bar in the editor (CLI cannot show it)"] : []),
286
286
  ...(def.genericActions.includes("enable") ? [" enable|disable|archive"] : []),
287
- " config --config '{…}' Whitelisted JSON only",
287
+ ...(def.genericActions.includes("config") ? [" config --config '{…}' Whitelisted JSON only"] : []),
288
288
  ];
289
289
  if (def.extraActions.length) {
290
290
  lines.push("", "Actions (this module):", ...def.extraActions.map((a) => ` ${a}`));
@@ -1,4 +1,4 @@
1
- export declare const TYPED_CONFIG_CLI_KEYS: readonly ["callbar", "forms", "booking", "signups"];
1
+ export declare const TYPED_CONFIG_CLI_KEYS: readonly ["callbar", "forms", "signups"];
2
2
  export type TypedConfigCliKey = (typeof TYPED_CONFIG_CLI_KEYS)[number];
3
3
  export declare function isTypedConfigCliKey(key: string): key is TypedConfigCliKey;
4
4
  export declare function runTypedConfig(key: TypedConfigCliKey, slug: string, action: string, flags: string[]): Promise<number>;
@@ -1,11 +1,11 @@
1
1
  /**
2
- * §CLI-MOD-CFG — typed get/set for callbar, forms, booking, signups.
2
+ * §CLI-MOD-CFG — typed get/set for callbar, forms, signups.
3
3
  */
4
4
  import { assertNoUnknownFlags, takeFlag } from "../argv.js";
5
5
  import { EXIT_OK, v1Get, v1Post } from "../http/client.js";
6
6
  import { emitOk, emitUsage, isJson } from "../runtime.js";
7
7
  import { formatModuleUsage } from "./commands.js";
8
- export const TYPED_CONFIG_CLI_KEYS = ["callbar", "forms", "booking", "signups"];
8
+ export const TYPED_CONFIG_CLI_KEYS = ["callbar", "forms", "signups"];
9
9
  export function isTypedConfigCliKey(key) {
10
10
  return TYPED_CONFIG_CLI_KEYS.includes(key);
11
11
  }
@@ -33,10 +33,6 @@ function printCallbar(config) {
33
33
  printLine("sms", yesNo(config.sms));
34
34
  printLine("label", dash(config.label));
35
35
  }
36
- function printBooking(config) {
37
- printLine("notify", dash(config.notifyEmail));
38
- printLine("hours", dash(config.hours));
39
- }
40
36
  function printConfirmable(config, confirmations) {
41
37
  printLine("notify", dash(config.notifyEmail));
42
38
  const on = config.confirmEnabled === true;
@@ -102,8 +98,6 @@ export async function runTypedConfig(key, slug, action, flags) {
102
98
  }
103
99
  if (key === "callbar")
104
100
  printCallbar(data.config ?? {});
105
- else if (key === "booking")
106
- printBooking(data.config ?? {});
107
101
  else
108
102
  printConfirmable(data.config ?? {}, data.confirmations);
109
103
  return EXIT_OK;
@@ -115,7 +109,6 @@ export async function runTypedConfig(key, slug, action, flags) {
115
109
  const call = takeFlag(work, "--call");
116
110
  const label = takeFlag(work, "--label");
117
111
  const notifyEmail = takeFlag(work, "--notify-email");
118
- const hours = takeFlag(work, "--hours");
119
112
  const confirmRaw = takeFlag(work, "--confirm");
120
113
  const confirmTemplate = takeFlag(work, "--confirm-template");
121
114
  assertNoUnknownFlags(work, "modules");
@@ -139,8 +132,6 @@ export async function runTypedConfig(key, slug, action, flags) {
139
132
  body.label = label;
140
133
  if (notifyEmail !== undefined)
141
134
  body.notifyEmail = notifyEmail;
142
- if (hours !== undefined)
143
- body.hours = hours;
144
135
  if (confirmEnabled !== undefined)
145
136
  body.confirmEnabled = confirmEnabled;
146
137
  if (confirmTemplate !== undefined) {
@@ -162,8 +153,6 @@ export async function runTypedConfig(key, slug, action, flags) {
162
153
  const cfg = data.config ?? {};
163
154
  if (key === "callbar")
164
155
  printCallbar(cfg);
165
- else if (key === "booking")
166
- printBooking(cfg);
167
156
  else
168
157
  printConfirmable(cfg);
169
158
  return EXIT_OK;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frontpage-host",
3
- "version": "0.3.21",
3
+ "version": "0.3.23",
4
4
  "description": "Frontpage CLI \u2014 manage your site from the terminal",
5
5
  "type": "module",
6
6
  "bin": {