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.
|
|
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
|
|
package/dist/modules/commands.js
CHANGED
|
@@ -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
|
-
|
|
285
|
-
|
|
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", "
|
|
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,
|
|
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", "
|
|
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;
|