@wix/himalaya-cli 0.983.0 → 0.985.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.
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/_types/stdlib/wix-sdk/notification-preferences/src/index.d.ts +105 -33
- package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-notification-preferences.mjs +66 -5
- package/dist/cli.mjs +19 -15
- package/dist/preview-assets.generated.bin +0 -0
- package/fixtures/wix-canned.json +36 -29
- package/guides/sdk-reference.json +86 -49
- package/package.json +2 -2
- package/templates/beauty-salon/dev/index.ts +27 -2
- package/templates/beauty-salon/tier5-src/himi-branded-lite-order/index.ts +14 -6
- package/templates/beauty-salon/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/branded-lite/dev/index.ts +27 -2
- package/templates/branded-lite/tier5-src/himi-branded-lite-notifsettings/index.ts +42 -14
- package/templates/branded-lite/tier5-src/himi-branded-lite-order/index.ts +14 -6
- package/templates/branded-lite/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/community-club/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/events-meetups/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/gym-fitness/dev/index.ts +27 -2
- package/templates/gym-fitness/tier5-src/himi-branded-lite-order/index.ts +14 -6
- package/templates/gym-fitness/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/nonprofit-cause/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/podcast-creator/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/portfolio-creative/dev/index.ts +25 -1
- package/templates/portfolio-creative/tier5-src/himi-branded-lite-order/index.ts +14 -6
- package/templates/portfolio-creative/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/restaurant/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/retail-store/dev/index.ts +25 -1
- package/templates/retail-store/tier5-src/himi-branded-lite-order/index.ts +14 -6
- package/templates/retail-store/tier5-src/himi-store-account/index.ts +59 -20
- package/templates/yoga-studio/dev/index.ts +2 -1
- package/templates/yoga-studio/tier5-src/himi-store-account/index.ts +59 -20
|
@@ -5,56 +5,128 @@ declare global {
|
|
|
5
5
|
};
|
|
6
6
|
};
|
|
7
7
|
}
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* The service's own mount, from the published swagger `host`
|
|
10
|
+
* ("www.wixapis.com/notification-preferences") — the PATH half of it.
|
|
11
|
+
*
|
|
12
|
+
* Relative, not absolute: the `wixApi` bridge supplies the gateway host. Baking one in
|
|
13
|
+
* works on a phone and is rejected in a browser (`400 absolute_urls_not_allowed`), so a
|
|
14
|
+
* client that spells the host works in one place and not the other. What was wrong
|
|
15
|
+
* before was the mount (`/notifications`), not the host.
|
|
16
|
+
*/
|
|
17
|
+
export declare const NOTIFICATION_PREFERENCES_BASE = "/notification-preferences/v1";
|
|
18
|
+
/** `enum State` on `StateData`. A scalar, not an object. */
|
|
19
|
+
export type PreferenceState = "MUTED" | "UNMUTED" | string;
|
|
20
|
+
/** Kept as the name the callers already use for the value they write. */
|
|
9
21
|
export type MuteStatus = "MUTED" | "UNMUTED";
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
export
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
22
|
+
/** `enum Channel { UNKNOWN_CHANNEL, ALL, MOBILE, EMAIL, SMS, VOICE, BROWSER, WEB_FEED }`.
|
|
23
|
+
* `ALL` is real and covers mobile too — filtering it out hides preferences that do
|
|
24
|
+
* apply on this surface. */
|
|
25
|
+
export type Channel = "ALL" | "MOBILE" | "EMAIL" | "SMS" | "VOICE" | "BROWSER" | "WEB_FEED" | string;
|
|
26
|
+
export type RecipientType = "WIX_USER" | "CONTACT";
|
|
27
|
+
/** `message StateData`. `granted` and `overridden` are read-only server verdicts. */
|
|
28
|
+
export interface StateData {
|
|
29
|
+
/** The state the recipient asked for. */
|
|
18
30
|
state?: PreferenceState;
|
|
31
|
+
/** Whether the notification is granted to be SENT. An UNMUTED topic under a muted
|
|
32
|
+
* channel is `granted: false` — i.e. the row must not render ON. */
|
|
33
|
+
granted?: boolean;
|
|
34
|
+
/** Whether a broader rule overrides this row, so it cannot be changed here. */
|
|
35
|
+
overridden?: boolean;
|
|
36
|
+
displayName?: string;
|
|
19
37
|
}
|
|
20
|
-
/**
|
|
38
|
+
/** `message PreferenceInfo` — one topic×channel preference. */
|
|
21
39
|
export interface PreferenceInfo {
|
|
22
|
-
/** The notification topic id (matches NotificationTopic.id). */
|
|
23
40
|
topicId: string;
|
|
24
|
-
/** Delivery channel this preference applies to (e.g. "MOBILE"). */
|
|
25
41
|
channel?: Channel;
|
|
26
|
-
stateData?:
|
|
42
|
+
stateData?: StateData;
|
|
43
|
+
topicType?: string;
|
|
27
44
|
}
|
|
45
|
+
/** `message NotificationPreferences`. */
|
|
28
46
|
export interface NotificationPreferences {
|
|
29
47
|
preferencesInfo?: PreferenceInfo[];
|
|
30
48
|
}
|
|
49
|
+
/** `GetPreferencesBy{Implicit,}RecipientResponse` uses `notification_preferences`;
|
|
50
|
+
* `UpsertPreferencesBy{Implicit,}RecipientResponse` uses `preferences`. Both are
|
|
51
|
+
* declared so a caller cannot read the wrong one by accident. */
|
|
31
52
|
export interface GetMyNotificationPreferencesResponse {
|
|
53
|
+
notificationPreferences?: NotificationPreferences;
|
|
54
|
+
}
|
|
55
|
+
export interface UpsertMyNotificationPreferencesResponse {
|
|
32
56
|
preferences?: NotificationPreferences;
|
|
33
57
|
}
|
|
34
|
-
/**
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
id: string;
|
|
58
|
+
/** `message NotificationTopicDefinition`. */
|
|
59
|
+
export interface NotificationTopicDefinition {
|
|
60
|
+
topicId: string;
|
|
38
61
|
displayName?: string;
|
|
62
|
+
state?: PreferenceState;
|
|
63
|
+
topicType?: string;
|
|
39
64
|
}
|
|
65
|
+
/** `GetNotificationTopicsDefinitionsResponse.preference_definitions`. */
|
|
40
66
|
export interface GetNotificationTopicsResponse {
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
export interface UpsertMyNotificationPreferencesRequest {
|
|
44
|
-
preferencesInfo: PreferenceInfo[];
|
|
67
|
+
preferenceDefinitions?: NotificationTopicDefinition[];
|
|
45
68
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
69
|
+
/** The topic list, or empty when the response carried none. */
|
|
70
|
+
export declare function readTopics(res: GetNotificationTopicsResponse | undefined): NotificationTopicDefinition[];
|
|
71
|
+
/** The preference rows out of EITHER response shape (see the asymmetry note above). */
|
|
72
|
+
export declare function readPreferences(res: GetMyNotificationPreferencesResponse | UpsertMyNotificationPreferencesResponse | undefined): PreferenceInfo[];
|
|
73
|
+
/** Map a UI "on" boolean to the state to WRITE: on ⇒ delivered ("UNMUTED"). */
|
|
50
74
|
export declare function muteStatusFor(on: boolean): MuteStatus;
|
|
51
|
-
/**
|
|
52
|
-
*
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
75
|
+
/**
|
|
76
|
+
* Whether this row is actually being delivered right now.
|
|
77
|
+
*
|
|
78
|
+
* `granted` is the server's verdict and beats `state`: a topic the recipient unmuted
|
|
79
|
+
* under a channel they muted is `state: "UNMUTED", granted: false`. Rendering `state`
|
|
80
|
+
* alone shows ON for a notification that will never arrive.
|
|
81
|
+
*/
|
|
82
|
+
export declare function isDeliveredNow(stateData: StateData | undefined): boolean;
|
|
83
|
+
/** Whether a broader rule overrides this row, so the UI must not offer to change it. */
|
|
84
|
+
export declare function isLocked(stateData: StateData | undefined): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* The one preference row that governs `topicId` on `channel`, or undefined when the
|
|
87
|
+
* recipient has no row for it (⇒ the topic's default, which is delivery).
|
|
88
|
+
*
|
|
89
|
+
* A topic can carry SEVERAL rows — one per channel, plus a channel-wide `ALL` — and
|
|
90
|
+
* the response order is not specified. Picking with a bare `find` therefore rendered
|
|
91
|
+
* whichever row the service happened to list first, so a mobile switch could show an
|
|
92
|
+
* EMAIL preference, and a MOBILE + ALL pair flipped meaning between two identical
|
|
93
|
+
* reads. Resolved by SPECIFICITY instead: the exact channel wins, then `ALL`, then a
|
|
94
|
+
* row that names no channel at all.
|
|
95
|
+
*/
|
|
96
|
+
export declare function preferenceFor(topicId: string, prefs: readonly PreferenceInfo[], channel?: Channel): PreferenceInfo | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Per-topic "is this actually being delivered on `channel`" verdicts.
|
|
99
|
+
*
|
|
100
|
+
* A topic with no row is absent from the map, not false: absent means "the topic's
|
|
101
|
+
* own default", which the caller renders as ON.
|
|
102
|
+
*/
|
|
103
|
+
export declare function deliveredByTopic(prefs: readonly PreferenceInfo[], channel?: Channel): Record<string, boolean>;
|
|
104
|
+
/** List the site's notification topics — `GET /v1/preferences/topics`
|
|
105
|
+
* (GetNotificationTopicsDefinitions). Publicly mounted.
|
|
106
|
+
* verify-live: source contract checked; live caller authorization remains untested. */
|
|
56
107
|
export declare function getNotificationTopics(): Promise<GetNotificationTopicsResponse>;
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
*
|
|
108
|
+
/**
|
|
109
|
+
* The PUBLICLY mounted preferences read — `GET /v1/preferences`
|
|
110
|
+
* (GetPreferencesByRecipient). It needs the recipient explicitly: `CONTACT` + a
|
|
111
|
+
* contactId for a member, `WIX_USER` + a wixUserId for an owner.
|
|
112
|
+
*
|
|
113
|
+
* Prefer this from an app going through the public gateway; the implicit-recipient
|
|
114
|
+
* variant below is not among the five paths the swagger exposes.
|
|
115
|
+
* verify-live: source contract checked; live caller authorization remains untested.
|
|
116
|
+
*/
|
|
117
|
+
export declare function getPreferencesForRecipient(recipient: {
|
|
118
|
+
recipientType: RecipientType;
|
|
119
|
+
contactId?: string;
|
|
120
|
+
wixUserId?: string;
|
|
121
|
+
language?: string;
|
|
122
|
+
}): Promise<GetMyNotificationPreferencesResponse>;
|
|
123
|
+
/** The signed-in recipient's preferences — `GET /v1/preferences-by-implicit-recipient`
|
|
124
|
+
* (GetPreferencesByImplicitRecipient). NOT in the published public swagger; a 404 from
|
|
125
|
+
* the public gateway is the expected outcome there, not a bug in this call.
|
|
126
|
+
* verify-live: the implicit-recipient mount has not been verified for member callers. */
|
|
127
|
+
export declare function getMyNotificationPreferences(): Promise<GetMyNotificationPreferencesResponse>;
|
|
128
|
+
/** Upsert some of the signed-in recipient's preferences —
|
|
129
|
+
* `POST /v1/preferences-by-implicit-recipient` (UpsertPreferencesByImplicitRecipient),
|
|
130
|
+
* body `{ preferencesInfo }`. Pass only the rows that changed.
|
|
131
|
+
* verify-live: the implicit-recipient mount has not been verified for member callers. */
|
|
60
132
|
export declare function upsertMyNotificationPreferences(preferencesInfo: PreferenceInfo[]): Promise<UpsertMyNotificationPreferencesResponse>;
|
package/dist/authoring-runtime/node_modules/@wix/himalaya/dist/wix-notification-preferences.mjs
CHANGED
|
@@ -5,27 +5,88 @@ function wixCall(method, path, body, headers) {
|
|
|
5
5
|
}
|
|
6
6
|
return globalThis.himalaya.wixApi.call(method, path, body, headers);
|
|
7
7
|
}
|
|
8
|
-
var
|
|
8
|
+
var NOTIFICATION_PREFERENCES_BASE = "/notification-preferences/v1";
|
|
9
|
+
function readTopics(res) {
|
|
10
|
+
return res?.preferenceDefinitions ?? [];
|
|
11
|
+
}
|
|
12
|
+
function readPreferences(res) {
|
|
13
|
+
const container = res?.notificationPreferences ?? res?.preferences;
|
|
14
|
+
return container?.preferencesInfo ?? [];
|
|
15
|
+
}
|
|
9
16
|
function muteStatusFor(on) {
|
|
10
17
|
return on ? "UNMUTED" : "MUTED";
|
|
11
18
|
}
|
|
12
|
-
function
|
|
13
|
-
|
|
19
|
+
function isDeliveredNow(stateData) {
|
|
20
|
+
if (!stateData) return false;
|
|
21
|
+
if (typeof stateData.granted === "boolean") return stateData.granted;
|
|
22
|
+
return stateData.state === "UNMUTED";
|
|
23
|
+
}
|
|
24
|
+
function isLocked(stateData) {
|
|
25
|
+
return stateData?.overridden === true;
|
|
26
|
+
}
|
|
27
|
+
function preferenceFor(topicId, prefs, channel = "MOBILE") {
|
|
28
|
+
let allRow;
|
|
29
|
+
let unscoped;
|
|
30
|
+
for (const p of prefs) {
|
|
31
|
+
if (p.topicId !== topicId) continue;
|
|
32
|
+
if (p.channel === channel) return p;
|
|
33
|
+
if (p.channel === "ALL") allRow ?? (allRow = p);
|
|
34
|
+
else if (!p.channel) unscoped ?? (unscoped = p);
|
|
35
|
+
}
|
|
36
|
+
return allRow ?? unscoped;
|
|
37
|
+
}
|
|
38
|
+
function deliveredByTopic(prefs, channel = "MOBILE") {
|
|
39
|
+
const out = {};
|
|
40
|
+
for (const p of prefs) {
|
|
41
|
+
if (!p.topicId || p.topicId in out) continue;
|
|
42
|
+
const governing = preferenceFor(p.topicId, prefs, channel);
|
|
43
|
+
if (governing) out[p.topicId] = isDeliveredNow(governing.stateData);
|
|
44
|
+
}
|
|
45
|
+
return out;
|
|
14
46
|
}
|
|
15
47
|
function getNotificationTopics() {
|
|
16
|
-
return wixCall(
|
|
48
|
+
return wixCall(
|
|
49
|
+
"GET",
|
|
50
|
+
`${NOTIFICATION_PREFERENCES_BASE}/preferences/topics`
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
function getPreferencesForRecipient(recipient) {
|
|
54
|
+
const query = Object.entries({
|
|
55
|
+
recipientType: recipient.recipientType,
|
|
56
|
+
contactId: recipient.contactId,
|
|
57
|
+
wixUserId: recipient.wixUserId,
|
|
58
|
+
language: recipient.language
|
|
59
|
+
}).filter(([, value]) => Boolean(value)).map(([key, value]) => `${key}=${encodeURIComponent(value ?? "")}`).join("&");
|
|
60
|
+
return wixCall(
|
|
61
|
+
"GET",
|
|
62
|
+
`${NOTIFICATION_PREFERENCES_BASE}/preferences?${query}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
function getMyNotificationPreferences() {
|
|
66
|
+
return wixCall(
|
|
67
|
+
"GET",
|
|
68
|
+
`${NOTIFICATION_PREFERENCES_BASE}/preferences-by-implicit-recipient`
|
|
69
|
+
);
|
|
17
70
|
}
|
|
18
71
|
function upsertMyNotificationPreferences(preferencesInfo) {
|
|
19
72
|
return wixCall(
|
|
20
73
|
"POST",
|
|
21
|
-
`${
|
|
74
|
+
`${NOTIFICATION_PREFERENCES_BASE}/preferences-by-implicit-recipient`,
|
|
22
75
|
{ preferencesInfo }
|
|
23
76
|
);
|
|
24
77
|
}
|
|
25
78
|
export {
|
|
79
|
+
NOTIFICATION_PREFERENCES_BASE,
|
|
80
|
+
deliveredByTopic,
|
|
26
81
|
getMyNotificationPreferences,
|
|
27
82
|
getNotificationTopics,
|
|
83
|
+
getPreferencesForRecipient,
|
|
84
|
+
isDeliveredNow,
|
|
85
|
+
isLocked,
|
|
28
86
|
muteStatusFor,
|
|
87
|
+
preferenceFor,
|
|
88
|
+
readPreferences,
|
|
89
|
+
readTopics,
|
|
29
90
|
upsertMyNotificationPreferences
|
|
30
91
|
};
|
|
31
92
|
//# sourceMappingURL=wix-notification-preferences.mjs.map
|
package/dist/cli.mjs
CHANGED
|
@@ -3471,6 +3471,9 @@ var init_build_lib = __esm({
|
|
|
3471
3471
|
// as @himalaya/state.
|
|
3472
3472
|
"@himalaya/time": resolve8(REPO_ROOT4, "core/sdk/time/src/index.ts"),
|
|
3473
3473
|
"@himalaya/widget": resolve8(REPO_ROOT4, "core/sdk/widget/src/index.ts"),
|
|
3474
|
+
// RFC 0036. The app-level nav workers consume its pure `readNotificationEvent`
|
|
3475
|
+
// parser + `setBadge`; demo-app-push has its own build.mjs and predates this entry.
|
|
3476
|
+
"@himalaya/push": resolve8(REPO_ROOT4, "core/sdk/push/src/index.ts"),
|
|
3474
3477
|
"@himalaya/dispatch": resolve8(REPO_ROOT4, "core/sdk/dispatch/src/index.ts"),
|
|
3475
3478
|
// stdlib/flows/* — composed flow modules (auth, checkout). Not capabilities:
|
|
3476
3479
|
// they wrap capabilities + native dispatch actions that already exist. See
|
|
@@ -42880,15 +42883,16 @@ ${releaseId}`;
|
|
|
42880
42883
|
if ((request.method === "GET" || request.method === "HEAD") && path === "/v1/__webwix/identity") {
|
|
42881
42884
|
const headers2 = { "content-type": JSON_CT, "cache-control": "no-store" };
|
|
42882
42885
|
if (request.method === "HEAD") return new Response(null, { status: 200, headers: headers2 });
|
|
42886
|
+
const webwixDirect = opts.webwixBridge !== false;
|
|
42883
42887
|
if (memberAuthOn()) {
|
|
42884
42888
|
const app2 = memberApp(request);
|
|
42885
42889
|
const store2 = memberSessions();
|
|
42886
42890
|
if (app2 && store2) {
|
|
42887
42891
|
const token = await memberTokenFor(store2, readSessionCookie(request.headers.get("cookie")), app2, null);
|
|
42888
|
-
if (token) return json3(200, { authenticated: true, userId: null, email: null }, { "cache-control": "no-store" });
|
|
42892
|
+
if (token) return json3(200, { authenticated: true, userId: null, email: null, webwixDirect }, { "cache-control": "no-store" });
|
|
42889
42893
|
}
|
|
42890
42894
|
}
|
|
42891
|
-
return json3(200, { authenticated: false, userId: null, email: null }, { "cache-control": "no-store" });
|
|
42895
|
+
return json3(200, { authenticated: false, userId: null, email: null, webwixDirect }, { "cache-control": "no-store" });
|
|
42892
42896
|
}
|
|
42893
42897
|
if (request.method === "POST" && path === "/v1/__webwix/call") {
|
|
42894
42898
|
if (opts.webwixBridge === false) {
|
|
@@ -43787,19 +43791,19 @@ var init_preview_assets_generated = __esm({
|
|
|
43787
43791
|
"../../packages/serve/src/preview-assets.generated.ts"() {
|
|
43788
43792
|
init_preview_assets_format();
|
|
43789
43793
|
PREVIEW_ASSET_MANIFEST = [
|
|
43790
|
-
{ key: "assets/index-
|
|
43791
|
-
{ key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset:
|
|
43792
|
-
{ key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset:
|
|
43793
|
-
{ key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset:
|
|
43794
|
-
{ key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset:
|
|
43795
|
-
{ key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset:
|
|
43796
|
-
{ key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset:
|
|
43797
|
-
{ key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset:
|
|
43798
|
-
{ key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset:
|
|
43799
|
-
{ key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset:
|
|
43800
|
-
{ key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset:
|
|
43801
|
-
{ key: "index.html", contentType: "text/html; charset=utf-8", offset:
|
|
43802
|
-
{ key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset:
|
|
43794
|
+
{ key: "assets/index-BHbI7Cmq.js", contentType: "application/javascript; charset=utf-8", offset: 8, length: 994462, sha256: "f4589e2d3922fada826a38cbf29c40cfbd124903a29c07c32b93f7019e417e05" },
|
|
43795
|
+
{ key: "fonts/WixMadeforDisplay-Bold.ttf", contentType: "font/ttf", offset: 994470, length: 90924, sha256: "ec4c7d63772d980d6e147b2df6215fd2737e4b04cebe0cf7e11dc695fb63cdcf" },
|
|
43796
|
+
{ key: "fonts/WixMadeforDisplay-ExtraBold.ttf", contentType: "font/ttf", offset: 1085394, length: 90984, sha256: "bf4c16a2774edd38a921edf3099469866cd74c094fd596f3fa4e81f54a04dfaa" },
|
|
43797
|
+
{ key: "fonts/WixMadeforDisplay-Medium.ttf", contentType: "font/ttf", offset: 1176378, length: 90980, sha256: "368faca44fb9f7207e4af784e94750b1ee59c1098b8689e0f4a918926f244fb5" },
|
|
43798
|
+
{ key: "fonts/WixMadeforDisplay-Regular.ttf", contentType: "font/ttf", offset: 1267358, length: 90872, sha256: "97ed8f1a6772abe26e3d8af5cecfc4b02faa94497d585b0398b5053b739a70c1" },
|
|
43799
|
+
{ key: "fonts/WixMadeforDisplay-SemiBold.ttf", contentType: "font/ttf", offset: 1358230, length: 90980, sha256: "642feab8a48ddf6c7a89d7c2a7c0edfa0e6e773f671287e460e222703563191e" },
|
|
43800
|
+
{ key: "fonts/WixMadeforText-Bold.ttf", contentType: "font/ttf", offset: 1449210, length: 108636, sha256: "37c179b4fefb63ea9637322b84583a2df53aa226c150294eea1675c14b1b8e29" },
|
|
43801
|
+
{ key: "fonts/WixMadeforText-ExtraBold.ttf", contentType: "font/ttf", offset: 1557846, length: 109084, sha256: "62e2fe4718129f36ecdb0ae4de385bd6b81ecc876146447167c6c140fad699a9" },
|
|
43802
|
+
{ key: "fonts/WixMadeforText-Medium.ttf", contentType: "font/ttf", offset: 1666930, length: 109048, sha256: "4ecf270136af928612c76fe4ebade91d8156975e5ea4c0cf9225501dd1788e02" },
|
|
43803
|
+
{ key: "fonts/WixMadeforText-Regular.ttf", contentType: "font/ttf", offset: 1775978, length: 107700, sha256: "dee56f09fd3efc127c1ea95557edc74110c1460a46287da36e0af25efd341ef5" },
|
|
43804
|
+
{ key: "fonts/WixMadeforText-SemiBold.ttf", contentType: "font/ttf", offset: 1883678, length: 88108, sha256: "dced97a77624bc5f8b1ae65850360908297f4588e09feb6f22792d29dc7e765b" },
|
|
43805
|
+
{ key: "index.html", contentType: "text/html; charset=utf-8", offset: 1971786, length: 4448, sha256: "246aa990caa5f3d2b93be16c284909d3cd339608304a0378eb838ea6eb21d21c" },
|
|
43806
|
+
{ key: "t5-frame.html", contentType: "text/html; charset=utf-8", offset: 1976234, length: 13784, sha256: "cfb9465254fab84f0e084bb4542c282758ea29774b5f172840cc0b9e4194ef89" }
|
|
43803
43807
|
];
|
|
43804
43808
|
}
|
|
43805
43809
|
});
|
|
Binary file
|
package/fixtures/wix-canned.json
CHANGED
|
@@ -504,13 +504,23 @@
|
|
|
504
504
|
},
|
|
505
505
|
"POST /social-groups-proxy/members/v2/groups/grp-0001/members/query": {
|
|
506
506
|
"members": [
|
|
507
|
-
{
|
|
507
|
+
{
|
|
508
|
+
"siteMemberId": "mem-0001",
|
|
509
|
+
"memberId": "mem-0001",
|
|
510
|
+
"role": "MEMBER"
|
|
511
|
+
}
|
|
508
512
|
],
|
|
509
|
-
"metadata": {
|
|
513
|
+
"metadata": {
|
|
514
|
+
"count": 1,
|
|
515
|
+
"total": 1
|
|
516
|
+
}
|
|
510
517
|
},
|
|
511
518
|
"POST /social-groups-proxy/members/v2/groups/grp-0002/members/query": {
|
|
512
519
|
"members": [],
|
|
513
|
-
"metadata": {
|
|
520
|
+
"metadata": {
|
|
521
|
+
"count": 0,
|
|
522
|
+
"total": 0
|
|
523
|
+
}
|
|
514
524
|
},
|
|
515
525
|
"POST /online-programs/v3/programs/query": {
|
|
516
526
|
"programs": [
|
|
@@ -677,7 +687,7 @@
|
|
|
677
687
|
{
|
|
678
688
|
"id": "menu-0001",
|
|
679
689
|
"name": "All Day",
|
|
680
|
-
"description": "Served 8am
|
|
690
|
+
"description": "Served 8am\u20134pm",
|
|
681
691
|
"visible": true,
|
|
682
692
|
"sectionIds": [
|
|
683
693
|
"sec-0001",
|
|
@@ -888,10 +898,10 @@
|
|
|
888
898
|
{
|
|
889
899
|
"id": "conv-0002",
|
|
890
900
|
"businessDisplayData": {
|
|
891
|
-
"name": "The Roastery
|
|
901
|
+
"name": "The Roastery \u2014 Wholesale"
|
|
892
902
|
},
|
|
893
903
|
"latestMessage": {
|
|
894
|
-
"previewText": "Thanks
|
|
904
|
+
"previewText": "Thanks \u2014 see you Saturday!",
|
|
895
905
|
"createdDate": "2026-06-14T16:40:00.000Z"
|
|
896
906
|
},
|
|
897
907
|
"unreadMessageCount": 0
|
|
@@ -959,7 +969,7 @@
|
|
|
959
969
|
},
|
|
960
970
|
{
|
|
961
971
|
"id": "rw-0002",
|
|
962
|
-
"name": "
|
|
972
|
+
"name": "\u00a35 off brew gear",
|
|
963
973
|
"active": true,
|
|
964
974
|
"type": "DISCOUNT_AMOUNT",
|
|
965
975
|
"discountAmount": {
|
|
@@ -1193,50 +1203,47 @@
|
|
|
1193
1203
|
"total": 2
|
|
1194
1204
|
}
|
|
1195
1205
|
},
|
|
1196
|
-
"GET /
|
|
1197
|
-
"
|
|
1206
|
+
"GET /notification-preferences/v1/preferences/topics": {
|
|
1207
|
+
"preferenceDefinitions": [
|
|
1198
1208
|
{
|
|
1199
|
-
"
|
|
1209
|
+
"topicId": "topic-0001",
|
|
1200
1210
|
"displayName": "Order updates"
|
|
1201
1211
|
},
|
|
1202
1212
|
{
|
|
1203
|
-
"
|
|
1213
|
+
"topicId": "topic-0002",
|
|
1204
1214
|
"displayName": "New lots"
|
|
1205
1215
|
},
|
|
1206
1216
|
{
|
|
1207
|
-
"
|
|
1217
|
+
"topicId": "topic-0003",
|
|
1208
1218
|
"displayName": "Events"
|
|
1209
1219
|
}
|
|
1210
1220
|
]
|
|
1211
1221
|
},
|
|
1212
|
-
"GET /
|
|
1213
|
-
"
|
|
1222
|
+
"GET /notification-preferences/v1/preferences-by-implicit-recipient": {
|
|
1223
|
+
"notificationPreferences": {
|
|
1214
1224
|
"preferencesInfo": [
|
|
1215
1225
|
{
|
|
1216
1226
|
"topicId": "topic-0001",
|
|
1217
1227
|
"channel": "MOBILE",
|
|
1218
1228
|
"stateData": {
|
|
1219
|
-
"state":
|
|
1220
|
-
|
|
1221
|
-
}
|
|
1229
|
+
"state": "UNMUTED",
|
|
1230
|
+
"granted": true
|
|
1222
1231
|
}
|
|
1223
1232
|
},
|
|
1224
1233
|
{
|
|
1225
1234
|
"topicId": "topic-0002",
|
|
1226
1235
|
"channel": "MOBILE",
|
|
1227
1236
|
"stateData": {
|
|
1228
|
-
"state":
|
|
1229
|
-
|
|
1230
|
-
}
|
|
1237
|
+
"state": "MUTED",
|
|
1238
|
+
"granted": false
|
|
1231
1239
|
}
|
|
1232
1240
|
},
|
|
1233
1241
|
{
|
|
1234
1242
|
"topicId": "topic-0003",
|
|
1235
|
-
"channel": "
|
|
1243
|
+
"channel": "ALL",
|
|
1236
1244
|
"stateData": {
|
|
1237
|
-
"state":
|
|
1238
|
-
|
|
1239
|
-
}
|
|
1245
|
+
"state": "UNMUTED",
|
|
1246
|
+
"granted": true
|
|
1240
1247
|
}
|
|
1241
1248
|
}
|
|
1242
1249
|
]
|
|
@@ -1282,10 +1289,10 @@
|
|
|
1282
1289
|
},
|
|
1283
1290
|
"reactionsList": [
|
|
1284
1291
|
{
|
|
1285
|
-
"code": "
|
|
1292
|
+
"code": "\ud83d\udc4d"
|
|
1286
1293
|
},
|
|
1287
1294
|
{
|
|
1288
|
-
"code": "
|
|
1295
|
+
"code": "\u2615"
|
|
1289
1296
|
}
|
|
1290
1297
|
]
|
|
1291
1298
|
},
|
|
@@ -1295,7 +1302,7 @@
|
|
|
1295
1302
|
"content": {
|
|
1296
1303
|
"blocks": [
|
|
1297
1304
|
{
|
|
1298
|
-
"text": "Cupping table set for Saturday
|
|
1305
|
+
"text": "Cupping table set for Saturday \u2014 six lots."
|
|
1299
1306
|
}
|
|
1300
1307
|
]
|
|
1301
1308
|
},
|
|
@@ -1305,7 +1312,7 @@
|
|
|
1305
1312
|
},
|
|
1306
1313
|
"reactionsList": [
|
|
1307
1314
|
{
|
|
1308
|
-
"code": "
|
|
1315
|
+
"code": "\ud83d\udc4d"
|
|
1309
1316
|
}
|
|
1310
1317
|
]
|
|
1311
1318
|
}
|
|
@@ -1488,7 +1495,7 @@
|
|
|
1488
1495
|
},
|
|
1489
1496
|
"commentCount": 12,
|
|
1490
1497
|
"viewCount": 1280,
|
|
1491
|
-
"contentText": "Looking to upgrade from a blade grinder
|
|
1498
|
+
"contentText": "Looking to upgrade from a blade grinder \u2014 what's the sweet spot right now?"
|
|
1492
1499
|
}
|
|
1493
1500
|
},
|
|
1494
1501
|
"GET /stores/v3/products/prod-0001": {
|