@wix/blog 1.0.690 → 1.0.692
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/_sdk-exports/context-blog-feed-context-provider/runtime.d.ts +483 -0
- package/_sdk-exports/context-blog-feed-context-provider/runtime.js +5 -0
- package/_sdk-exports/context-category-item-context-provider/runtime.d.ts +189 -0
- package/_sdk-exports/context-category-item-context-provider/runtime.js +2 -0
- package/_sdk-exports/context-post-by-id-context-provider/runtime.d.ts +31 -0
- package/_sdk-exports/context-post-by-id-context-provider/runtime.js +5 -0
- package/_sdk-exports/context-post-context-provider/runtime.d.ts +3213 -0
- package/_sdk-exports/context-post-context-provider/runtime.js +5 -0
- package/_sdk-exports/context-post-item-context-provider/runtime.d.ts +386 -0
- package/_sdk-exports/context-post-item-context-provider/runtime.js +5 -0
- package/_sdk-exports/context-related-posts-context-provider/runtime.d.ts +341 -0
- package/_sdk-exports/context-related-posts-context-provider/runtime.js +5 -0
- package/_sdk-exports/context-tag-item-context-provider/runtime.d.ts +185 -0
- package/_sdk-exports/context-tag-item-context-provider/runtime.js +2 -0
- package/blog-feed-context-provider/package.json +3 -0
- package/build/cjs/context-blog-feed-context-provider.d.ts +483 -0
- package/build/cjs/context-blog-feed-context-provider.js +4601 -0
- package/build/cjs/context-blog-feed-context-provider.js.map +1 -0
- package/build/cjs/context-category-item-context-provider.d.ts +189 -0
- package/build/cjs/context-category-item-context-provider.js +578 -0
- package/build/cjs/context-category-item-context-provider.js.map +1 -0
- package/build/cjs/context-post-by-id-context-provider.d.ts +31 -0
- package/build/cjs/context-post-by-id-context-provider.js +4531 -0
- package/build/cjs/context-post-by-id-context-provider.js.map +1 -0
- package/build/cjs/context-post-context-provider.d.ts +3213 -0
- package/build/cjs/context-post-context-provider.js +5404 -0
- package/build/cjs/context-post-context-provider.js.map +1 -0
- package/build/cjs/context-post-item-context-provider.d.ts +386 -0
- package/build/cjs/context-post-item-context-provider.js +3682 -0
- package/build/cjs/context-post-item-context-provider.js.map +1 -0
- package/build/cjs/context-related-posts-context-provider.d.ts +341 -0
- package/build/cjs/context-related-posts-context-provider.js +4355 -0
- package/build/cjs/context-related-posts-context-provider.js.map +1 -0
- package/build/cjs/context-tag-item-context-provider.d.ts +185 -0
- package/build/cjs/context-tag-item-context-provider.js +578 -0
- package/build/cjs/context-tag-item-context-provider.js.map +1 -0
- package/build/es/context-blog-feed-context-provider.d.mts +483 -0
- package/build/es/context-blog-feed-context-provider.mjs +4571 -0
- package/build/es/context-blog-feed-context-provider.mjs.map +1 -0
- package/build/es/context-category-item-context-provider.d.mts +189 -0
- package/build/es/context-category-item-context-provider.mjs +549 -0
- package/build/es/context-category-item-context-provider.mjs.map +1 -0
- package/build/es/context-post-by-id-context-provider.d.mts +31 -0
- package/build/es/context-post-by-id-context-provider.mjs +4491 -0
- package/build/es/context-post-by-id-context-provider.mjs.map +1 -0
- package/build/es/context-post-context-provider.d.mts +3213 -0
- package/build/es/context-post-context-provider.mjs +5374 -0
- package/build/es/context-post-context-provider.mjs.map +1 -0
- package/build/es/context-post-item-context-provider.d.mts +386 -0
- package/build/es/context-post-item-context-provider.mjs +3652 -0
- package/build/es/context-post-item-context-provider.mjs.map +1 -0
- package/build/es/context-related-posts-context-provider.d.mts +341 -0
- package/build/es/context-related-posts-context-provider.mjs +4325 -0
- package/build/es/context-related-posts-context-provider.mjs.map +1 -0
- package/build/es/context-tag-item-context-provider.d.mts +185 -0
- package/build/es/context-tag-item-context-provider.mjs +549 -0
- package/build/es/context-tag-item-context-provider.mjs.map +1 -0
- package/build/internal/cjs/context-blog-feed-context-provider.d.ts +483 -0
- package/build/internal/cjs/context-category-item-context-provider.d.ts +189 -0
- package/build/internal/cjs/context-post-by-id-context-provider.d.ts +31 -0
- package/build/internal/cjs/context-post-context-provider.d.ts +3213 -0
- package/build/internal/cjs/context-post-item-context-provider.d.ts +386 -0
- package/build/internal/cjs/context-related-posts-context-provider.d.ts +341 -0
- package/build/internal/cjs/context-tag-item-context-provider.d.ts +185 -0
- package/build/internal/es/context-blog-feed-context-provider.d.mts +483 -0
- package/build/internal/es/context-category-item-context-provider.d.mts +189 -0
- package/build/internal/es/context-post-by-id-context-provider.d.mts +31 -0
- package/build/internal/es/context-post-context-provider.d.mts +3213 -0
- package/build/internal/es/context-post-item-context-provider.d.mts +386 -0
- package/build/internal/es/context-related-posts-context-provider.d.mts +341 -0
- package/build/internal/es/context-tag-item-context-provider.d.mts +185 -0
- package/category-item-context-provider/package.json +3 -0
- package/context/blog-feed-context-provider/package.json +3 -0
- package/context/category-item-context-provider/package.json +3 -0
- package/context/post-by-id-context-provider/package.json +3 -0
- package/context/post-context-provider/package.json +3 -0
- package/context/post-item-context-provider/package.json +3 -0
- package/context/related-posts-context-provider/package.json +3 -0
- package/context/tag-item-context-provider/package.json +3 -0
- package/package.json +104 -5
- package/post-by-id-context-provider/package.json +3 -0
- package/post-context-provider/package.json +3 -0
- package/post-item-context-provider/package.json +3 -0
- package/related-posts-context-provider/package.json +3 -0
- package/tag-item-context-provider/package.json +3 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
//#region ../../node_modules/type-fest/source/observable-like.d.ts
|
|
4
|
+
declare global {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions -- It has to be an `interface` so that it can be merged.
|
|
6
|
+
interface SymbolConstructor {
|
|
7
|
+
readonly observable: symbol;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
@remarks
|
|
12
|
+
The TC39 observable proposal defines a `closed` property, but some implementations (such as xstream) do not as of 10/08/2021.
|
|
13
|
+
As well, some guidance on making an `Observable` to not include `closed` property.
|
|
14
|
+
@see https://github.com/tc39/proposal-observable/blob/master/src/Observable.js#L129-L130
|
|
15
|
+
@see https://github.com/staltz/xstream/blob/6c22580c1d84d69773ee4b0905df44ad464955b3/src/index.ts#L79-L85
|
|
16
|
+
@see https://github.com/benlesh/symbol-observable#making-an-object-observable
|
|
17
|
+
|
|
18
|
+
@category Observable
|
|
19
|
+
*/
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region ../../node_modules/@wix/sdk-types/build/index.d.ts
|
|
22
|
+
declare global {
|
|
23
|
+
interface ContextualClient {}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates concrete types from SDK descriptors when a contextual client is
|
|
27
|
+
* available.
|
|
28
|
+
*
|
|
29
|
+
* For a REST descriptor the built (bound) API is intersected with the original
|
|
30
|
+
* descriptor, matching what `contextualizeRESTModuleV2` returns at runtime — a
|
|
31
|
+
* value callable as the bound API and still usable as a descriptor. Keeping the
|
|
32
|
+
* descriptor half lets contextual modules be passed to descriptor-constrained
|
|
33
|
+
* helpers such as `elevate` from `@wix/sdk/context` (FEDINF-14092).
|
|
34
|
+
*
|
|
35
|
+
* The `& T` is scoped to REST descriptors — the only shape codegen wraps in
|
|
36
|
+
* `MaybeContext` — so `BuildDescriptors` (used by `createClient().use`) is left
|
|
37
|
+
* unchanged and stays bound-only. The fix lives here rather than in `elevate`,
|
|
38
|
+
* which is kept strict on purpose (see #941) so it still rejects bound-only
|
|
39
|
+
* functions that are unsafe through `createRESTModule`.
|
|
40
|
+
*/
|
|
41
|
+
declare global {
|
|
42
|
+
/**
|
|
43
|
+
* A global interface to set the exposure toggle for the SDK.
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* declare global {
|
|
47
|
+
* interface SDKExposureToggle {
|
|
48
|
+
* alpha: true;
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*/
|
|
52
|
+
interface SDKExposureToggle {}
|
|
53
|
+
}
|
|
54
|
+
declare global {
|
|
55
|
+
/**
|
|
56
|
+
* A global interface to set the type mode for the SDK.
|
|
57
|
+
* @example
|
|
58
|
+
* ```ts
|
|
59
|
+
* declare global {
|
|
60
|
+
* interface SDKTypeMode {
|
|
61
|
+
* strict: true;
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
*/
|
|
65
|
+
interface SDKTypeMode {}
|
|
66
|
+
}
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region ../../node_modules/@wix/editor-react-types/dist/links.d.ts
|
|
69
|
+
type LinkTarget = '_self' | '_blank';
|
|
70
|
+
/**
|
|
71
|
+
* A link to a URL, used for navigation within components.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* import type { Link } from '@wix/editor-react-types';
|
|
76
|
+
*
|
|
77
|
+
* interface MyComponentProps {
|
|
78
|
+
* link?: Link;
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
type Link = {
|
|
83
|
+
/**
|
|
84
|
+
* The link URL. For partial links (see `pageRole`), this is the router prefix
|
|
85
|
+
* (e.g. `https://www.my-site.com/prefix`) rather than a fully resolved URL.
|
|
86
|
+
*/
|
|
87
|
+
href?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Where this link should open.
|
|
90
|
+
* - `'_self'` — opens in the same page.
|
|
91
|
+
* - `'_blank'` — opens in a new tab.
|
|
92
|
+
*/
|
|
93
|
+
target?: LinkTarget; /** The `rel` attribute of the link. Accepts LinkRel values separated by a space. */
|
|
94
|
+
rel?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Page role identifier. Present only on partial links, where only the router prefix is
|
|
97
|
+
* known and the full URL format is owned by the Router/App. Applications can use such
|
|
98
|
+
* links in functions to resolve the complete URL at runtime (e.g. for binding links).
|
|
99
|
+
* Resolved links will not have this field.
|
|
100
|
+
*/
|
|
101
|
+
pageRole?: string;
|
|
102
|
+
};
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region ../../node_modules/@wix/editor-react-types/dist/base.d.ts
|
|
105
|
+
/**
|
|
106
|
+
* Rich text content with resolved links.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```tsx
|
|
110
|
+
* import type { RichText } from '@wix/editor-react-types';
|
|
111
|
+
*
|
|
112
|
+
* interface MyComponentProps {
|
|
113
|
+
* description?: RichText;
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* const MyComponent = ({ description }: MyComponentProps) => (
|
|
117
|
+
* <div>
|
|
118
|
+
* {description?.html}
|
|
119
|
+
* {description?.linkList.map((link) => (
|
|
120
|
+
* <a key={link.href} href={link.href}>{link.href}</a>
|
|
121
|
+
* ))}
|
|
122
|
+
* </div>
|
|
123
|
+
* );
|
|
124
|
+
* ```
|
|
125
|
+
*/
|
|
126
|
+
type RichText = {
|
|
127
|
+
/** The original rich text content. */text: string; /** The HTML content with all links resolved. */
|
|
128
|
+
html: string; /** All links present in the rich text content. */
|
|
129
|
+
linkList: Array<Link>;
|
|
130
|
+
};
|
|
131
|
+
//#endregion
|
|
132
|
+
//#region src/extensions/post-context-provider/utils.d.ts
|
|
133
|
+
/**
|
|
134
|
+
* One item of the `postCategories` array — the object the platform hands the Category Item
|
|
135
|
+
* context provider as its `categoryData` prop (via the manifest's `contextImplementor`).
|
|
136
|
+
*
|
|
137
|
+
* `_id`/`label` are the manifest contract (`CATEGORY_ITEM_CONTRACT_ITEMS`, plain text and
|
|
138
|
+
* non-bindable); the remaining keys must match the Category Item context manifest's
|
|
139
|
+
* `context.items` keys, because the runtime resolves an element's binding by looking the
|
|
140
|
+
* key up on that provider's hook return value.
|
|
141
|
+
*/
|
|
142
|
+
interface PostCategoryItem {
|
|
143
|
+
/** Repeater item identity; also the manifest contract's `_id`. */
|
|
144
|
+
_id: string;
|
|
145
|
+
/** The manifest contract's `label` (plain text, non-bindable — see the richText label below). */
|
|
146
|
+
label: string;
|
|
147
|
+
itemCategoryLabel: RichText;
|
|
148
|
+
/** The category's feed view; `undefined` (unlinked) without a resolvable base or slug. */
|
|
149
|
+
itemCategoryLink: Link | undefined;
|
|
150
|
+
/** Mirrors the Category Item manifest's nested (non-bindable) `categoryItem` data item. */
|
|
151
|
+
categoryItem: {
|
|
152
|
+
label: string;
|
|
153
|
+
slug: string;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//#endregion
|
|
157
|
+
//#region src/extensions/category-item-context-provider/category-item-context-provider.d.ts
|
|
158
|
+
/**
|
|
159
|
+
* The context value IS the item — its keys sit top-level because the runtime resolves an
|
|
160
|
+
* element's binding by looking the manifest item key up on this hook's return value
|
|
161
|
+
* (through `contextSpecifier.hook`).
|
|
162
|
+
*
|
|
163
|
+
* Unlike the Post Item context there is nothing to derive per cell: a category chip has no
|
|
164
|
+
* per-cell network read, so the item the platform injects is published unchanged and no
|
|
165
|
+
* memo is needed (the object identity is the platform's, stable per cell render).
|
|
166
|
+
*/
|
|
167
|
+
type CategoryItemContextType = PostCategoryItem;
|
|
168
|
+
/**
|
|
169
|
+
* Nullable rather than throwing: the hook runs for every element inside the repeater cell,
|
|
170
|
+
* including on the editor stage before the cell is populated.
|
|
171
|
+
*/
|
|
172
|
+
declare function useCategoryItemContext(): CategoryItemContextType | null;
|
|
173
|
+
/** Props accepted by {@link CategoryItemContextProvider}. */
|
|
174
|
+
interface CategoryItemContextProviderProps extends React.PropsWithChildren {
|
|
175
|
+
/**
|
|
176
|
+
* The current item of the `postCategories` array, injected by the platform per repeater
|
|
177
|
+
* cell (the Post context manifest's `contextImplementor.propKey`). Absent on the editor's
|
|
178
|
+
* unbound template cell — children then render over a null context, matching the Post
|
|
179
|
+
* Item provider; this provider has no standalone fetch path.
|
|
180
|
+
*/
|
|
181
|
+
categoryData?: PostCategoryItem;
|
|
182
|
+
}
|
|
183
|
+
/** Supplies one post category, injected per repeater cell, to its children. */
|
|
184
|
+
declare function CategoryItemContextProvider({
|
|
185
|
+
categoryData,
|
|
186
|
+
children
|
|
187
|
+
}: CategoryItemContextProviderProps): React.ReactNode;
|
|
188
|
+
//#endregion
|
|
189
|
+
export { CategoryItemContextProvider, CategoryItemContextProvider as default, CategoryItemContextProviderProps, CategoryItemContextType, type PostCategoryItem, useCategoryItemContext };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createContext as e,useContext as t}from"react";import{Fragment as n,jsx as r}from"react/jsx-runtime";var i={};function a(e,t=!1,n=e=>e){return()=>({__type:`event-definition`,type:e,isDomainEvent:t,transformations:n})}var o=e=>{switch(e){case`get`:case`GET`:return`GET`;case`post`:case`POST`:return`POST`;case`put`:case`PUT`:return`PUT`;case`delete`:case`DELETE`:return`DELETE`;case`patch`:case`PATCH`:return`PATCH`;case`head`:case`HEAD`:return`HEAD`;case`options`:case`OPTIONS`:return`OPTIONS`;default:throw Error(`Unknown method: ${e}`)}},s=e=>t=>async n=>{let r,i=t=>{if(r=e(n)(t),r.url===void 0)throw Error(`Url was not successfully created for this request, please reach out to support channels for assistance.`);let{method:i,url:a,params:s}=r;return{...r,method:o(i),url:a,data:r.data,params:s}};try{let e=await t.request(i);if(r===void 0)throw Error(`Request options were not created for this request, please reach out to support channels for assistance.`);let n=Array.isArray(r.transformResponse)?r.transformResponse:[r.transformResponse],a=e.data;return n.forEach(t=>{t&&(a=t(e.data,e.headers))}),a}catch(e){throw typeof e==`object`&&e&&`response`in e&&typeof e.response==`object`&&e.response!==null&&`data`in e.response?e.response.data:e}},c=e=>e.__isAmbassador?!0:!!e().__isAmbassador,l=`__metadata`,u=`edge.wixapis.com`,d=class extends Error{message;response;constructor(e,t){super(e),this.message=e,this.response=t}async details(){let e=await this.response.json();return f(this.response.status,e?.message,e?.details,{requestId:this.response.headers.get(`X-Wix-Request-Id`),details:e})}},f=(e,t,n,r)=>({details:{...!n?.validationError&&{applicationError:{description:t,code:e,data:r}},...n},message:t,requestId:r?.requestId}),p=e=>e?.method&&[`post`,`put`,`patch`].includes(e.method.toLocaleLowerCase())&&e.body?{"Content-Type":`application/json`}:{},ee=e=>e&&typeof e==`object`&&!Array.isArray(e),m=e=>e.__type===`host`;function h(e,t){return e.create(t)}var g=`x-wix-bi-gateway`;function _(e,t,n){return{[g]:v({environment:`js-sdk${n?`-${n}`:``}`,"package-name":e.packageName??t?.PACKAGE_NAME,"method-fqn":e.methodFqn,entity:e.entityFqdn})}}function v(e){return Object.entries(e).filter(([e,t])=>!!t).map(([e,t])=>`${e}=${t}`).join(`,`)}function y(e){let t=globalThis.__wix_context__,n={client:i.client,elevatedClient:i.elevatedClient},r;globalThis.__wix_context__=void 0,i.client=void 0,i.elevatedClient=void 0,typeof $wixContext<`u`&&(r={client:$wixContext?.client,elevatedClient:$wixContext?.elevatedClient},delete $wixContext.client,delete $wixContext.elevatedClient);try{return e()}finally{globalThis.__wix_context__=t,i.client=n.client,i.elevatedClient=n.elevatedClient,typeof $wixContext<`u`&&($wixContext.client=r.client,$wixContext.elevatedClient=r.elevatedClient)}}var b={id:`_id`,createdDate:`_createdDate`,updatedDate:`_updatedDate`};function x(e){return ne(e).map(e=>e.toLocaleUpperCase()).join(`_`)}var S=/([\p{Ll}\d])(\p{Lu})/gu,C=/(\p{Lu})([\p{Lu}][\p{Ll}])/gu,w=`$1\0$2`,te=/[^\p{L}\d]+/giu;function ne(e){let t=e.trim();t=t.replace(S,w).replace(C,w),t=t.replace(te,`\0`);let n=0,r=t.length;for(;t.charAt(n)===`\0`;)n++;if(n===r)return[];for(;t.charAt(r-1)===`\0`;)r--;return t.slice(n,r).split(/\0/g)}var re=e=>`validationError`in(e.response?.data?.details??{}),ie=e=>`applicationError`in(e.response?.data?.details??{}),ae=e=>(e.response?.status??-1)>=400&&(e.response?.status??-1)<500;function oe(e,t={explicitPathsToArguments:{},spreadPathsToArguments:{},singleArgumentUnchanged:!1},n=[]){if(typeof e!=`object`||!e)throw e;if(re(e))return se(e,t,n);if(ie(e))return E(e);if(ae(e)){let t=e.response?.status,n=e.response?.statusText??`UNKNOWN`,r=e.response?.data?.message??n,i={applicationError:{description:n,code:x(n),data:{}},requestId:e.requestId};return T(e,{message:JSON.stringify({message:r,details:i},null,2),extraProperties:{details:i,status:t}})}return D(e)}var se=(e,t,n)=>{let r=e.response?.data,i=e.requestId,{fieldViolations:a}=r.details.validationError,o=O(t,a,n)?.sort((e,t)=>e.field<t.field?-1:1),s=`INVALID_ARGUMENT: ${o?.map(({field:e,description:t})=>`"${e}" ${t}`)?.join(`, `)}`,c={validationError:{fieldViolations:o},requestId:i};return T(e,{message:JSON.stringify({message:s,details:c},null,2),extraProperties:{details:c,status:e.response?.status,requestId:i}})},T=(e,{message:t,extraProperties:n})=>Object.assign(e,{...n,message:t}),E=e=>{let t=e.response?.status,n=e.response?.statusText??`UNKNOWN`,r=e.response?.data?.message??n,i=e.response?.data?.details?.applicationError?.description??n,a=e.response?.data?.details?.applicationError?.code??x(n),o=e.response?.data?.details?.applicationError?.data??{},s=r===i?r:`${r}: ${i}`,c={applicationError:{description:i,code:a,data:o},requestId:e.requestId};return T(e,{message:JSON.stringify({message:s,details:c},null,2),extraProperties:{details:c,status:t,requestId:e.requestId}})},D=e=>T(e,{message:e.requestId?`System error occurred, request-id: ${e.requestId}`:`System error occurred: ${JSON.stringify(e)}`,extraProperties:{requestId:e.requestId,status:e.response?.status,code:x(e.response?.statusText??`UNKNOWN`),...!e.response&&{runtimeError:e}}}),O=({spreadPathsToArguments:e,explicitPathsToArguments:t,singleArgumentUnchanged:n},r,i)=>{let a={...e,...t},o=Object.keys(a);return r?.filter(e=>!r.some(t=>t.field.length>e.field.length&&t.field.startsWith(e.field)&&o.includes(t.field))).map(e=>{let r=t[e.field];if(r)return{...e,field:k(r,i)};let s=o?.sort((e,t)=>t.length-e.length)?.find(t=>e.field.startsWith(t));if(s){let t=a[s];if(t)return{...e,field:e.field.replace(s,k(t,i))}}return n?{...e,field:`${i[0]}.${e.field}`}:e})},k=(e,t)=>{let n=A(e);return n==null?e:e.replace(`$[${n}]`,t[n])},A=e=>{let t=e.match(/\$\[(?<argIndex>\d+)\]/);return t&&t.groups&&Number(t.groups.argIndex)};function j(e,t,n,r,i,a,o,s,c,l,d){return y(()=>e({request:async e=>{let i=e({host:s?.HTTPHost||`www.wixapis.com`}),a=i;a.method===`GET`&&a.fallback?.length&&(a.params?.toString().length??0)>4e3&&(a=i.fallback[0]);let o=s?.HTTPHost??`www.wixapis.com`,d=`https://${l?u:o}${a.url}`;a.params&&a.params.toString()&&(d+=`?${a.params.toString()}`);try{let e=_(i,t,c),o={method:a.method,...a.data&&{body:JSON.stringify(a.data)},headers:{...e}},s=await n(d,o);if(s.status!==200){let e=null;try{e=await s.json()}catch{}let t=N(s.status,e?.message??s.statusText,e?.details,{requestId:s.headers.get(`X-Wix-Request-Id`),details:e}),n=oe(t);throw r?.handleError(n,{requestOptions:{url:a.url,method:a.method,entityFqdn:i.entityFqdn,methodFqn:i.methodFqn}}),t}let l=await s.json();return{data:a.migrationOptions?.optInTransformResponse&&a.transformResponse?Array.isArray(a.transformResponse)?a.transformResponse[0](l):a.transformResponse(l):l,headers:s.headers,status:s.status,statusText:s.statusText}}catch(e){throw e.message?.includes(`fetch is not defined`)&&console.error(`Node.js v18+ is required`),e}},fetchWithAuth:n,wixAPIFetch:i,getActiveToken:a,getAuthHeaders:o},{validateRequestSchema:d}))}var M=class extends Error{response;requestId;constructor(e){super(),this.response=e.response,this.requestId=e.requestId}},N=(e,t,n,r)=>new M({response:{data:{details:{...!n?.validationError&&{applicationError:{description:t,code:e,data:r}},...n},message:t},status:e},requestId:r?.requestId}),P=`.`;function F(e,t,n){if(e==null)throw Error(`Cannot set value on null or undefined`);let r=I(t),i=e;for(let e=0;e<r.length;e++){let t=r[e];if(e===r.length-1){i[t]=n;break}let a=r[e+1];(!(t in i)||i[t]==null||typeof i[t]!=`object`||i[t]===null)&&(i[t]=typeof a==`number`?[]:{}),i=i[t]}return e}function I(e){return Array.isArray(e)?e:e.split(P).map(e=>L(e)?Number(e):e)}function L(e){return/^\d+$/.test(e)}function R(e){let t={};for(let[n,r]of Object.entries(e))z(n)||F(t,I(n),r);return t}function z(e){return e===`__proto__`||e===`constructor`||e===`prototype`}var B=class{BRACKET_PATTERN=/\[(\d+)\]/g;NUMERIC_PATTERN=/^\d+$/;ESCAPED_DOT_PATTERN=/\\\./g;ESCAPED_LEFT_BRACKET_PATTERN=/\\\[/g;ESCAPED_RIGHT_BRACKET_PATTERN=/\\\]/g;SPLIT_PATTERN=/\.|\[(\d+)\]/g;DOT_BEFORE_BRACKET_PATTERN=/\.\[/g;ESCAPED_DOT_PLACEHOLDER=`__DOT__`;ESCAPED_RIGHT_BRACKET_PLACEHOLDER=`__RB__`;ESCAPED_LEFT_BRACKET_PLACEHOLDER=`__LB__`;modifiedFields;cleanedModifiedFields;constructor(e){this.modifiedFields=e}replaceEscapedCharacters(e){return e.replace(this.ESCAPED_DOT_PATTERN,this.ESCAPED_DOT_PLACEHOLDER).replace(this.ESCAPED_LEFT_BRACKET_PATTERN,this.ESCAPED_LEFT_BRACKET_PLACEHOLDER).replace(this.ESCAPED_RIGHT_BRACKET_PATTERN,this.ESCAPED_RIGHT_BRACKET_PLACEHOLDER)}restoreEscapedCharacters(e){return e.replace(this.ESCAPED_DOT_PLACEHOLDER,`\\.`).replace(this.ESCAPED_RIGHT_BRACKET_PLACEHOLDER,`\\]`).replace(this.ESCAPED_LEFT_BRACKET_PLACEHOLDER,`\\[`)}unflatten(){return this.cleanedModifiedFields=Object.fromEntries(Object.entries(this.modifiedFields).map(([e,t])=>[this.replaceEscapedCharacters(this.bracketToDotNotation(e)),t])),R(this.cleanedModifiedFields)}flatten(e){let t={};for(let n of Object.keys(this.cleanedModifiedFields)){let r=this.splitPath(n),i=this.navigatePath(e,r);t={...t,...i}}return Object.fromEntries(Object.entries(t).map(([e,t])=>[this.restoreEscapedCharacters(e),t]))}splitPath(e){let t=[],n=0,r=Array.from(e.matchAll(this.SPLIT_PATTERN));for(let i of r)i.index>n&&t.push(e.substring(n,i.index)),i[1]&&t.push(i[1]),n=i.index+i[0].length;return n<e.length&&t.push(e.substring(n)),t}navigatePath(e,t){let n=e,r=[],i=e=>{if(!Array.isArray(n))throw Error(`Expected array at path ${this.buildPathString(r)}, but got ${typeof n}`);r.push(`[${e}]`),n=n[parseInt(e,10)]},a=(e,t)=>{let i=e in b?b[e]:void 0;if(i&&i in t){r.push(i),n=t[i];return}let a=W(e);if(a&&a in t)r.push(a),n=t[a];else throw Error(`Cannot find key '${e}' or its transformations at path ${this.buildPathString(r)}`)},o=(e,t)=>{r.push(e),n=t[e]};for(let e of t){if(this.NUMERIC_PATTERN.test(e)){i(e);continue}if(typeof n!=`object`||!n)throw Error(`Cannot access property '${e}' on ${typeof n} at path ${this.buildPathString(r)}`);let t=n;e in n?o(e,t):a(e,t)}return{[this.buildPathString(r)]:n}}buildPathString(e){return e.join(`.`).replace(this.DOT_BEFORE_BRACKET_PATTERN,`[`)}bracketToDotNotation(e){return e.replace(this.BRACKET_PATTERN,(t,n,r)=>r>0&&e[r-1]===`\\`?t:`.`+n)}};function V(e,t){let n=e?.modifiedFields;if(!n)return null;let r=H(n);if(!r)return null;let{unflattenedModifiedFields:i,modifiedFieldsManipulator:a}=r;e={...e,modifiedFields:i};let o=t(e),s=o?.modifiedFields;if(!s)return null;let c=U(s,a);return c===null?null:(o.modifiedFields=c,o)}function H(e){if(typeof e==`object`&&e&&!Array.isArray(e))try{let t=new B(e);return{unflattenedModifiedFields:t.unflatten(),modifiedFieldsManipulator:t}}catch{return null}return null}function U(e,t){if(typeof e==`object`&&e&&!Array.isArray(e))try{return t.flatten(e)}catch{return null}return null}function W(e){return e.replace(/[-_\s]+(.)?/g,(e,t)=>t?t.toUpperCase():``).replace(/^./,e=>e.toLowerCase())}function G(){return{emit(e,...t){for(let n=0,r=this.events[e]||[],i=r.length;n<i;n++)r[n](...t)},events:{},on(e,t){return(this.events[e]||=[]).push(t),()=>{this.events[e]=this.events[e]?.filter(e=>t!==e)}}}}var ce=e=>e.__type===`event-definition`;function K(e,t,n,r){let i;if(e.isDomainEvent){let{deletedEvent:e,actionEvent:t,createdEvent:a,updatedEvent:o,...s}=n,c={...r,...s};i=e?e?.deletedEntity?{entity:e?.deletedEntity,metadata:c}:{metadata:c}:t?{data:t.body,metadata:c}:o?{entity:o.currentEntity,metadata:c,...o.modifiedFields?{modifiedFields:o.modifiedFields}:{}}:{entity:a?.entity,metadata:c}}else i={data:n,metadata:r};let a=e.transformations??(e=>e),o=i,s=i;if(s.modifiedFields){let e=s.modifiedFields;if(typeof e==`object`&&e&&!Array.isArray(e)){o=structuredClone(i);let e=V(s,a);if(e)return t(e)}}return t(a(o))}function le(e){let t=new Map,n=G();return{initModule(e){return r=>{let i=t.get(e.type)??[];i.push({eventDefinition:e,handler:r}),t.set(e.type,i),n.emit(`registered`,e)}},client:{...n,getRegisteredEvents:()=>t,async process(e,n={expectedEvents:[]}){let{eventType:r,identity:i,instanceId:a,payload:o,accountInfo:s}=await this.parseJWT(e),c=[...n.expectedEvents,...Array.from(t.keys()).map(e=>({type:e}))];if(c.length>0&&!c.some(({type:e})=>e===r))throw Error(`Unexpected event type: ${r}. Expected one of: ${c.map(e=>e.type).join(`, `)}`);let l=t.get(r)??[];return await Promise.all(l.map(({eventDefinition:e,handler:t})=>K(e,t,o,{instanceId:a,identity:i,accountInfo:s}))),{instanceId:a,eventType:r,payload:o,identity:i,accountInfo:s}},async processRequest(e,t){let n=await e.text();return this.process(n,t)},async parseJWT(t){let n=e();if(!n.decodeJWT)throw Error(`decodeJWT is not supported by the authentication strategy`);let{decoded:r,valid:i}=await n.decodeJWT(t);if(!i)throw Error(`JWT is not valid`);if(typeof r.data!=`string`)throw Error(`Unexpected type of JWT data: expected string, got ${typeof r.data}`);let a=JSON.parse(r.data),o=a.eventType,s=a.accountInfo,c=a.instanceId,l=a.identity?JSON.parse(a.identity):void 0;return{instanceId:c,eventType:o,payload:JSON.parse(a.data),identity:l,accountInfo:s}},async parseRequest(e){let t=await e.text();return this.parseJWT(t)},async executeHandlers(e){let n=Array.from(t.keys()).map(e=>({type:e}));if(n.length>0&&!n.some(({type:t})=>t===e.eventType))throw Error(`Unexpected event type: ${e.eventType}. Expected one of: ${n.map(e=>e.type).join(`, `)}`);let r=t.get(e.eventType)??[];await Promise.all(r.map(({eventDefinition:t,handler:n})=>K(t,n,e.payload,{instanceId:e.instanceId,identity:e.identity})))},apps:{AppInstalled:a(`AppInstalled`)(),AppRemoved:a(`AppRemoved`)()}}}}var ue=e=>e.__type===`service-plugin-definition`;function de(e){let t=new Map,n=G();return{initModule(e){return r=>{let i=t.get(e.componentType.toLowerCase())??[];i.push({servicePluginDefinition:e,implementation:r}),t.set(e.componentType.toLowerCase(),i),n.emit(`registered`,e)}},client:{...n,getRegisteredServicePlugins:()=>t,async parseJWT(t){let n=e();if(!n.decodeJWT)throw Error(`decodeJWT is not supported by the authentication strategy`);let{decoded:r,valid:i}=await n.decodeJWT(t,!0);if(!i)throw Error(`JWT is not valid`);if(typeof r.data!=`object`||r.data===null||!(`metadata`in r.data)||typeof r.data.metadata!=`object`||r.data.metadata===null||!(`appExtensionType`in r.data.metadata)||typeof r.data.metadata.appExtensionType!=`string`)throw Error(`Unexpected JWT data: expected object with metadata.appExtensionType string`);return r.data},async process(e){let t=await this.parseJWT(e.body);return this.executeHandler(t,e.url)},async parseRequest(e){let t=await e.text();return this.parseJWT(t)},async processRequest(e){let t=await this.parseRequest(e);return this.processParsedRequest(t,e.url)},async processParsedRequest(e,t){try{let n=await this.executeHandler(e,t);return Response.json(n)}catch(e){if(e.errorType===`SPI`&&e.applicationCode&&e.httpCode)return Response.json({applicationError:{code:e.applicationCode,data:e.data}},{status:e.httpCode});throw e}},async executeHandler(e,n){let r=e.metadata.appExtensionType.toLowerCase(),i=t.get(r)??[];if(i.length===0)throw Error(`No service plugin implementations found for component type ${r}`);if(i.length>1)throw Error(`Multiple service plugin implementations found for component type ${r}. This is currently not supported`);let{implementation:a,servicePluginDefinition:o}=i[0],s=o.methods.find(e=>n.endsWith(e.primaryHttpMappingPath));if(!s)throw Error(`Unexpect request: request url did not match any method: `+n);let c=a[s.name];if(!c)throw Error(`Got request for service plugin method ${s.name} but no implementation was provided. Available methods: ${Object.keys(a).join(`, `)}`);return s.transformations.toREST(await c(s.transformations.fromREST(e)))}}}}var q=`X-Wix-Consistent`;function fe(e){let t=e.headers||{Authorization:``},n={getAuthHeaders:e=>Promise.resolve({headers:{}})},r=e.auth,a=typeof r==`function`?r:()=>r??n,o=()=>a().getAuthHeaders(e.host),u=()=>e.fetch??fetch,f=async(n,r)=>{let i=u(),a=await o(),s={...r?.headers??{},...a.headers,...e.host?.essentials?.passThroughHeaders,...t[`X-Wix-Consistent`]?{[q]:t[q]}:{}},c=e.host?.getErrorHandler?.();try{if(typeof n==`string`||n instanceof URL){let e=await i(n,{...r,headers:s});c?.handleError(e,{requestOptions:{url:n.toString(),method:r?.method}});let a=J(e);return a&&(t[q]=a),e}{for(let[e,t]of Object.entries(s))typeof t==`string`&&n.headers.set(e,t);let e=await i(n,r);c?.handleError(e,{requestOptions:{url:n.url,method:r?.method}});let a=J(e);return a&&(t[q]=a),e}}catch(e){throw c?.handleError(e,{requestOptions:{url:typeof n==`string`||n instanceof URL?n.toString():n.url,method:r?.method}}),e}},{client:g,initModule:_}=de(a),{client:v,initModule:b}=le(a),x=async(n,r)=>{let i=u(),a=await o(),s=p(r),c=await i(n,{...r,headers:{...s,...t,...a?.headers,...r?.headers,...e.host?.essentials?.passThroughHeaders,...t[`X-Wix-Consistent`]?{[q]:t[q]}:{}}}),l=J(c);return l&&(t[q]=l),c},S=(t,n)=>{if(ce(t))return b(t);if(ue(t))return _(t);if(m(t)&&e.host)return h(t,e.host);if(typeof t==`function`){if(`__type`in t&&t.__type===`wix_spi_error`)return t;let r=e.host?.apiBaseUrl??`www.wixapis.com`,i=e.useCDN===void 0?a().shouldUseCDN:e.useCDN;return j(y(()=>c(t))?s(t):t,n??{},x,e.host?.getErrorHandler?.(),(e,t)=>{let n=new URL(e,`https://${r}`);return n.host=r,n.protocol=`https`,x(n.toString(),t)},a().getActiveToken,async()=>o(),{HTTPHost:r},e.host?.name,i,e.validateRequestSchema)}return ee(t)?Object.fromEntries(Object.entries(t).map(([e,n])=>[e,S(n,t[l])])):t},C=e=>{for(let n in e)t[n]=e[n]};return{...e.modules?S(e.modules):{},get auth(){let t=a();return t.getAuthHeaders=t.getAuthHeaders.bind(void 0,e.host),t},setHeaders:C,use:S,enableContext(e,t={elevated:!1}){e===`global`?globalThis.__wix_context__==null?t.elevated?globalThis.__wix_context__={elevatedClient:this}:globalThis.__wix_context__={client:this}:t.elevated?globalThis.__wix_context__.elevatedClient=this:globalThis.__wix_context__.client=this:t.elevated?i.elevatedClient=this:i.client=this},fetch:(t,n)=>{let r=e.host?.apiBaseUrl??`www.wixapis.com`,i=new URL(t,`https://${r}`);return i.host=r,i.protocol=`https`,x(i.toString(),n)},fetchWithAuth:f,async graphql(t,n,r={apiVersion:`alpha`}){let i=e?.host?.apiBaseUrl??`www.wixapis.com`,a=await x(`https://${i}/graphql/${r.apiVersion}`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({query:t,variables:n})});if(a.status!==200)throw new d(`GraphQL request failed with status ${a.status}`,a);let{data:o,errors:s}=await a.json();return{data:o??{},errors:s}},webhooks:v,servicePlugins:g}}function J(e){return e.headers?.get(`X-Wix-Consistent`)??e.headers?.get(`x-wix-consistent`)}var pe=`x-wix-linguist`,me=`00000000-0000-0000-0000-000000000000`,he=`false`,ge=()=>{let e=Y(`language`),t=Y(`locale`);if(e)return{[pe]:[e,t||e,he,me].join(`|`)}};function _e(){let e=null,t=null;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}var ve=()=>(typeof window<`u`?window.commonConfig:void 0)??globalThis.commonConfig,Y=e=>ve()?.[e],ye=({createHost:e})=>({__type:`host`,create:e=>({}),host:t=>{let{applicationId:n,componentId:r}=t??{},i=typeof window<`u`?window.wixEmbedsAPI:void 0,a=e(t),o=xe();return{...a,apiBaseUrl:o,getMonitoringClient:i?.getMonitoringClientFunction?.(n,r),essentials:{language:Y(`language`),locale:Y(`locale`),get passThroughHeaders(){return ge()}}}},auth:e=>{let t=typeof window<`u`?window.wixEmbedsAPI:void 0;!e&&be()&&(e=t?.getAccessTokenFunction?.());let n=!1,{resolve:r,promise:i}=_e();return{getAuthHeaders:async()=>{if(!e&&n&&(e=await i),!e)throw Error(`Failed to resolve auth token`);return{headers:{Authorization:await e()}}},getAccessTokenInjector:()=>(n=!0,e=>{r(e)})}}});function be(){return typeof document<`u`&&document.currentScript?.tagName===`SCRIPT`}function xe(){let e=(typeof window<`u`?window.wixEmbedsAPI:void 0)?.getExternalBaseUrl?.();if(!e)return;let t=new URL(e);return t?.pathname&&t.pathname!==`/`?`${t.hostname}${t.pathname}`:t.hostname}var Se=({clientSdk:e,applicationId:t})=>({invoke:async({namespace:n,method:r,args:i})=>{if(!e)throw Error(`Wix Site SDK only works in a Wix site environment. Learn more: https://dev.wix.com/docs/sdk/host-modules/site/introduction`);return e.invoke({namespace:n,method:r,args:i,applicationId:t,accessToken:`accessToken`})},getAccessToken:()=>{throw Error(`Not implemented`)},observeState:()=>({disconnect:()=>{}})}),X=ye({createHost:function(e){let t=(typeof $wixContext<`u`?$wixContext.clientSdk:void 0)??e?.clientSdk??(typeof window<`u`?window?.clientSdk:void 0),{applicationId:n}=e||{};if(!n)throw Error(`"createHost" was called without a required field "applicationId"`);return{channel:Se({clientSdk:t,applicationId:n}),close:()=>{}}}}),Z=(e,t)=>{let n=X.host({applicationId:e,componentId:t}),r=X.auth();return fe({auth:r,host:n}).enableContext(`module`),r.getAccessTokenInjector()},Ce=e=>Z(`14bcded7-0066-7c35-14d7-466cb3f09103`,e),Q=e(null);Q.displayName=`CategoryItemContext`;function we(){return t(Q)}function $({categoryData:e,children:t}){return e===void 0?r(n,{children:t}):r(Q.Provider,{value:e,children:t})}var Te=Ce(`edee3dc6-161e-4650-9f9f-c6093b4f88c4`);export{$ as CategoryItemContextProvider,$ as default,Te as injectAccessTokenGetter,we as useCategoryItemContext};
|
|
2
|
+
//# sourceMappingURL=context-provider-edee3dc6-161e-4650-9f9f-c6093b4f88c4-bDteue7f.js.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { usePostContext as usePostByIdContext } from "@wix/blog/post-context-provider";
|
|
3
|
+
|
|
4
|
+
//#region src/lib/category-picker.d.ts
|
|
5
|
+
/** A WQL clause the filter picker stores for one inline field. */
|
|
6
|
+
type PickerClause = {
|
|
7
|
+
$eq?: string;
|
|
8
|
+
$in?: string[];
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/lib/post-picker.d.ts
|
|
12
|
+
/** The inline filter field name, and therefore the key on the stored value. */
|
|
13
|
+
declare const POST_PICKER_FIELD = "postId";
|
|
14
|
+
interface PostPickerFilter {
|
|
15
|
+
[POST_PICKER_FIELD]?: PickerClause;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/extensions/post-by-id-context-provider/post-by-id-context-provider.d.ts
|
|
19
|
+
/** Props accepted by {@link PostByIdProvider}. */
|
|
20
|
+
interface PostByIdProviderProps {
|
|
21
|
+
children?: React.ReactNode;
|
|
22
|
+
/** The manifest's `data.postPicker` filter — `{ postId: { $eq: '<id>' } }` once picked. */
|
|
23
|
+
postPicker?: PostPickerFilter;
|
|
24
|
+
}
|
|
25
|
+
/** Supplies the blog post picked by ID through the Post context. */
|
|
26
|
+
declare function PostByIdProvider({
|
|
27
|
+
children,
|
|
28
|
+
postPicker
|
|
29
|
+
}: PostByIdProviderProps): React.ReactNode;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { PostByIdProvider, PostByIdProvider as default, PostByIdProviderProps, usePostByIdContext };
|