@dropins/tools 1.5.0-alpha007 → 1.5.0-alpha008
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/fetch-graphql.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
var b=Object.defineProperty;var
|
|
3
|
+
var b=Object.defineProperty;var F=(h,e,t)=>e in h?b(h,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):h[e]=t;var r=(h,e,t)=>F(h,typeof e!="symbol"?e+"":e,t);const u={"Content-Type":"application/json",Accept:"application/json"};class H{constructor(){r(this,"_endpoint");r(this,"_fetchGraphQlHeaders",{});r(this,"_beforeHooks",[]);r(this,"_afterHooks",[])}get endpoint(){return this._endpoint}get fetchGraphQlHeaders(){return this._fetchGraphQlHeaders}setEndpoint(e){this._endpoint=e}setFetchGraphQlHeader(e,t){this._fetchGraphQlHeaders={...this.fetchGraphQlHeaders,[e]:t}}removeFetchGraphQlHeader(e){delete this._fetchGraphQlHeaders[e]}getFetchGraphQlHeader(e){return this._fetchGraphQlHeaders[e]}setFetchGraphQlHeaders(e){typeof e=="function"?this._fetchGraphQlHeaders={...this._fetchGraphQlHeaders,...e(this._fetchGraphQlHeaders)}:this._fetchGraphQlHeaders={...e}}addBeforeHook(e){this._beforeHooks.push(e)}addAfterHook(e){this._afterHooks.push(e)}async fetchGraphQl(e,t){const l=this.endpoint,p=this.fetchGraphQlHeaders;if(!l)throw Error('Missing "url"');const s=(t==null?void 0:t.method)??"POST",G=t==null?void 0:t.cache,Q=t==null?void 0:t.signal;let f;const d=new URL(l),o={...u,...p};s==="POST"&&(f=JSON.stringify({query:e,variables:t==null?void 0:t.variables})),s==="GET"&&(d.searchParams.append("query",k(e)),t!=null&&t.variables&&d.searchParams.append("variables",JSON.stringify(t.variables)));let a={method:s,headers:o,body:f,cache:G,signal:Q};return a=await this._beforeHooks.reduce(async(i,c)=>c(await i),Promise.resolve(a)),await fetch(d,a).then(i=>i.json().then(c=>this._afterHooks.reduce(async(g,_)=>_(a,await g),Promise.resolve(c))))}getConfig(){return{endpoint:this.endpoint,fetchGraphQlHeaders:this.fetchGraphQlHeaders}}getMethods(){return{setEndpoint:this.setEndpoint.bind(this),setFetchGraphQlHeader:this.setFetchGraphQlHeader.bind(this),getFetchGraphQlHeader:this.getFetchGraphQlHeader.bind(this),removeFetchGraphQlHeader:this.removeFetchGraphQlHeader.bind(this),setFetchGraphQlHeaders:this.setFetchGraphQlHeaders.bind(this),fetchGraphQl:this.fetchGraphQl.bind(this),getConfig:this.getConfig.bind(this),addBeforeHook:this.addBeforeHook.bind(this),addAfterHook:this.addAfterHook.bind(this)}}}const n=new H;class v extends H{get endpoint(){return this._endpoint??n.endpoint}get fetchGraphQlHeaders(){return this._endpoint?this._fetchGraphQlHeaders:{...this._fetchGraphQlHeaders,...n.fetchGraphQlHeaders}}}function k(h){return h=h.replace(/#.*/g,""),h=h.replace(/\s+/g," "),h.trim()}const{setEndpoint:w,setFetchGraphQlHeaders:E,setFetchGraphQlHeader:P,getFetchGraphQlHeader:y,removeFetchGraphQlHeader:A,fetchGraphQl:C,getConfig:B,addBeforeHook:M,addAfterHook:O}=n.getMethods();export{v as FetchGraphQL,O as addAfterHook,M as addBeforeHook,C as fetchGraphQl,B as getConfig,y as getFetchGraphQlHeader,A as removeFetchGraphQlHeader,w as setEndpoint,P as setFetchGraphQlHeader,E as setFetchGraphQlHeaders};
|
|
4
4
|
//# sourceMappingURL=fetch-graphql.js.map
|
package/fetch-graphql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-graphql.js","sources":["@dropins/tools/src/fetch-graphql/index.ts"],"sourcesContent":["/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nexport type Header = { [key: string]: string | null };\n\nexport type FetchOptions = {\n method?: 'GET' | 'POST';\n variables?: { [key: string]: any };\n signal?: AbortSignal;\n cache?:\n | 'default'\n | 'no-store'\n | 'reload'\n | 'no-cache'\n | 'force-cache'\n | 'only-if-cached';\n};\n\nexport type FetchQueryError = Array<{\n message: string;\n extensions: { category: string };\n}>;\n\nexport type BeforeHook = (requestInit: RequestInit) => RequestInit;\nexport type AfterHook<T = any> = (\n requestInit: RequestInit,\n response: { errors?: FetchQueryError; data: T }\n) => { errors?: FetchQueryError; data: T };\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n};\n\nclass FetchGraphQLMesh {\n public _endpoint?: string;\n\n get endpoint() {\n return this._endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return this._fetchGraphQlHeaders;\n }\n\n public _fetchGraphQlHeaders: Header = {};\n\n public _beforeHooks: BeforeHook[] = [];\n\n public _afterHooks: AfterHook[] = [];\n\n /**\n * Sets the GraphQL endpoint.\n * @param endpoint - The GraphQL endpoint.\n */\n public setEndpoint(endpoint: string) {\n this._endpoint = endpoint;\n }\n\n /**\n * Sets the GraphQL headers.\n * @param key - The key of the header.\n * @param value - The value of the header.\n */\n public setFetchGraphQlHeader(key: string, value: string | null) {\n this._fetchGraphQlHeaders = {\n ...this.fetchGraphQlHeaders,\n [key]: value,\n };\n }\n /**\n * Removes a specific GraphQL header.\n * @param key - The key of the header.\n */\n public removeFetchGraphQlHeader(key: string) {\n delete this._fetchGraphQlHeaders[key];\n }\n /**\n * Sets the GraphQL headers.\n * @param header - The header object or a function that returns a header object.\n * If a function is provided, it will be called with the previous headers.\n * The returned object will be merged with the previous headers.\n * @example\n * ```js\n * // set headers\n * setFetchGraphQlHeaders({ test: 'test' });\n * \n * // merge with previous headers\n * setFetchGraphQlHeaders((prev) => ({\n * ...prev,\n * test: 'test2',\n * }));\n * ```\n */\n public setFetchGraphQlHeaders(header: Header | ((prev: Header) => Header)) {\n if (typeof header === 'function') {\n this._fetchGraphQlHeaders = {\n ...this._fetchGraphQlHeaders,\n ...header(this._fetchGraphQlHeaders),\n };\n } else {\n this._fetchGraphQlHeaders = { ...header };\n }\n }\n /**\n * Adds a hook executed before the GraphQL call.\n * @param hook - The hook function.\n * @example\n * ```js\n * // add before hook\n * addBeforeHook((requestInit) => console.log('About to execute ' + requestInit.method + ' call.'));\n *\n * // modify the requestInit before executing the request\n * addBeforeHook((requestInit) => {method: requestInit.method, body: 'new body'});\n * ```\n */\n public addBeforeHook(hook: BeforeHook): void {\n this._beforeHooks.push(hook);\n }\n /**\n * Adds a hook executed before the GraphQL call.\n * @param hook - The hook function.\n * @example\n * ```js\n * // add before hook\n * addAfterHook((requestInit, response) => console.log(\n * 'The result of ' + requestInit.method + ' call is ' + response.json().body\n * ));\n *\n * // modify the response\n * addAfterHook((requestInit, response) => new Response(JSON.stringify({ ...response, modified: true }));\n * ```\n */\n public addAfterHook(hook: AfterHook): void {\n this._afterHooks.push(hook);\n }\n /**\n * Fetches GraphQL data.\n * @param query - The GraphQL query.\n * @param options - Optional configuration for the fetch request.\n * @returns\n */\n public async fetchGraphQl<T = any>(\n query: string,\n options?: FetchOptions\n ): Promise<{ errors?: FetchQueryError; data: T }> {\n const endpoint = this.endpoint;\n const fetchGraphQlHeaders = this.fetchGraphQlHeaders;\n\n if (!endpoint) throw Error('Missing \"url\"');\n\n const method = options?.method ?? 'POST';\n const cache = options?.cache;\n const signal = options?.signal;\n\n let body;\n const url = new URL(endpoint);\n const headers = {\n ...defaultHeaders,\n ...fetchGraphQlHeaders,\n };\n\n if (method === 'POST') {\n body = JSON.stringify({\n query,\n variables: options?.variables,\n });\n }\n\n if (method === 'GET') {\n url.searchParams.append('query', minimizeGraphQlQuery(query));\n\n if (options?.variables)\n url.searchParams.append('variables', JSON.stringify(options.variables));\n }\n\n let requestInit: RequestInit = {\n method,\n headers,\n body,\n cache,\n signal,\n };\n\n requestInit = await this._beforeHooks.reduce(\n async (prev, hook) => hook(await prev),\n Promise.resolve(requestInit)\n );\n\n return await fetch(url, requestInit).then((r) => r.json().then(\n (response) => this._afterHooks.reduce(\n async (result, hook) => hook(requestInit, await result),\n Promise.resolve(response)\n )\n ));\n }\n /**\n * Gets the configuration.\n */\n public getConfig() {\n return {\n endpoint: this.endpoint,\n fetchGraphQlHeaders: this.fetchGraphQlHeaders,\n };\n }\n\n public getMethods() {\n return {\n setEndpoint: this.setEndpoint.bind(this),\n setFetchGraphQlHeader: this.setFetchGraphQlHeader.bind(this),\n removeFetchGraphQlHeader: this.removeFetchGraphQlHeader.bind(this),\n setFetchGraphQlHeaders: this.setFetchGraphQlHeaders.bind(this),\n fetchGraphQl: this.fetchGraphQl.bind(this),\n getConfig: this.getConfig.bind(this),\n addBeforeHook: this.addBeforeHook.bind(this),\n addAfterHook: this.addAfterHook.bind(this),\n };\n }\n}\n\nconst mesh = new FetchGraphQLMesh();\n\n/**\n * `FetchGraphQL` is a class that extends `FetchGraphQLMesh`.\n * It provides methods to get the GraphQL endpoint and headers.\n *\n * @class\n *\n */\nexport class FetchGraphQL extends FetchGraphQLMesh {\n get endpoint() {\n return this._endpoint ?? mesh.endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return (\n (this._endpoint\n ? this._fetchGraphQlHeaders\n : { ...this._fetchGraphQlHeaders, ...mesh.fetchGraphQlHeaders })\n );\n }\n}\n\nfunction minimizeGraphQlQuery(query: string) {\n // Remove comments\n query = query.replace(/#.*/g, '');\n\n // Remove extra spaces, tabs, and line breaks\n query = query.replace(/\\s+/g, ' ');\n\n return query.trim();\n}\n/**\n * Exports several methods from the `mesh` object.\n *\n * @property {Function} setEndpoint - Sets the GraphQL endpoint.\n * @property {Function} setFetchGraphQlHeaders - Sets the GraphQL headers.\n * @property {Function} setFetchGraphQlHeader - Sets a specific GraphQL header.\n * @property {Function} removeFetchGraphQlHeader - Removes a specific GraphQL header.\n * @property {Function} fetchGraphQl - Fetches GraphQL data.\n * @property {Function} getConfig - Gets the configuration.\n */\n\n// Global Mesh instance\nexport const {\n setEndpoint,\n setFetchGraphQlHeaders,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n fetchGraphQl,\n getConfig,\n addBeforeHook,\n addAfterHook,\n} = mesh.getMethods();\n"],"names":["defaultHeaders","FetchGraphQLMesh","__publicField","endpoint","key","value","header","hook","query","options","fetchGraphQlHeaders","method","cache","signal","body","url","headers","minimizeGraphQlQuery","requestInit","prev","r","response","result","mesh","FetchGraphQL","setEndpoint","setFetchGraphQlHeaders","setFetchGraphQlHeader","removeFetchGraphQlHeader","fetchGraphQl","getConfig","addBeforeHook","addAfterHook"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch-graphql.js","sources":["@dropins/tools/src/fetch-graphql/index.ts"],"sourcesContent":["/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nexport type Header = { [key: string]: string | null };\n\nexport type FetchOptions = {\n method?: 'GET' | 'POST';\n variables?: { [key: string]: any };\n signal?: AbortSignal;\n cache?:\n | 'default'\n | 'no-store'\n | 'reload'\n | 'no-cache'\n | 'force-cache'\n | 'only-if-cached';\n};\n\nexport type FetchQueryError = Array<{\n message: string;\n extensions: { category: string };\n}>;\n\nexport type BeforeHook = (requestInit: RequestInit) => RequestInit;\nexport type AfterHook<T = any> = (\n requestInit: RequestInit,\n response: { errors?: FetchQueryError; data: T }\n) => { errors?: FetchQueryError; data: T };\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n};\n\nclass FetchGraphQLMesh {\n public _endpoint?: string;\n\n get endpoint() {\n return this._endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return this._fetchGraphQlHeaders;\n }\n\n public _fetchGraphQlHeaders: Header = {};\n\n public _beforeHooks: BeforeHook[] = [];\n\n public _afterHooks: AfterHook[] = [];\n\n /**\n * Sets the GraphQL endpoint.\n * @param endpoint - The GraphQL endpoint.\n */\n public setEndpoint(endpoint: string) {\n this._endpoint = endpoint;\n }\n\n /**\n * Sets the GraphQL headers.\n * @param key - The key of the header.\n * @param value - The value of the header.\n */\n public setFetchGraphQlHeader(key: string, value: string | null) {\n this._fetchGraphQlHeaders = {\n ...this.fetchGraphQlHeaders,\n [key]: value,\n };\n }\n /**\n * Removes a specific GraphQL header.\n * @param key - The key of the header.\n */\n public removeFetchGraphQlHeader(key: string) {\n delete this._fetchGraphQlHeaders[key];\n }\n /**\n * Gets the value of a specific GraphQL header.\n * @param key - The key of the header.\n * @returns The value of the header, or undefined if not found.\n */\n public getFetchGraphQlHeader(key: string): string | null | undefined {\n return this._fetchGraphQlHeaders[key];\n }\n /**\n * Sets the GraphQL headers.\n * @param header - The header object or a function that returns a header object.\n * If a function is provided, it will be called with the previous headers.\n * The returned object will be merged with the previous headers.\n * @example\n * ```js\n * // set headers\n * setFetchGraphQlHeaders({ test: 'test' });\n * \n * // merge with previous headers\n * setFetchGraphQlHeaders((prev) => ({\n * ...prev,\n * test: 'test2',\n * }));\n * ```\n */\n public setFetchGraphQlHeaders(header: Header | ((prev: Header) => Header)) {\n if (typeof header === 'function') {\n this._fetchGraphQlHeaders = {\n ...this._fetchGraphQlHeaders,\n ...header(this._fetchGraphQlHeaders),\n };\n } else {\n this._fetchGraphQlHeaders = { ...header };\n }\n }\n /**\n * Adds a hook executed before the GraphQL call.\n * @param hook - The hook function.\n * @example\n * ```js\n * // add before hook\n * addBeforeHook((requestInit) => console.log('About to execute ' + requestInit.method + ' call.'));\n *\n * // modify the requestInit before executing the request\n * addBeforeHook((requestInit) => {method: requestInit.method, body: 'new body'});\n * ```\n */\n public addBeforeHook(hook: BeforeHook): void {\n this._beforeHooks.push(hook);\n }\n /**\n * Adds a hook executed before the GraphQL call.\n * @param hook - The hook function.\n * @example\n * ```js\n * // add before hook\n * addAfterHook((requestInit, response) => console.log(\n * 'The result of ' + requestInit.method + ' call is ' + response.json().body\n * ));\n *\n * // modify the response\n * addAfterHook((requestInit, response) => new Response(JSON.stringify({ ...response, modified: true }));\n * ```\n */\n public addAfterHook(hook: AfterHook): void {\n this._afterHooks.push(hook);\n }\n /**\n * Fetches GraphQL data.\n * @param query - The GraphQL query.\n * @param options - Optional configuration for the fetch request.\n * @returns\n */\n public async fetchGraphQl<T = any>(\n query: string,\n options?: FetchOptions\n ): Promise<{ errors?: FetchQueryError; data: T }> {\n const endpoint = this.endpoint;\n const fetchGraphQlHeaders = this.fetchGraphQlHeaders;\n\n if (!endpoint) throw Error('Missing \"url\"');\n\n const method = options?.method ?? 'POST';\n const cache = options?.cache;\n const signal = options?.signal;\n\n let body;\n const url = new URL(endpoint);\n const headers = {\n ...defaultHeaders,\n ...fetchGraphQlHeaders,\n };\n\n if (method === 'POST') {\n body = JSON.stringify({\n query,\n variables: options?.variables,\n });\n }\n\n if (method === 'GET') {\n url.searchParams.append('query', minimizeGraphQlQuery(query));\n\n if (options?.variables)\n url.searchParams.append('variables', JSON.stringify(options.variables));\n }\n\n let requestInit: RequestInit = {\n method,\n headers,\n body,\n cache,\n signal,\n };\n\n requestInit = await this._beforeHooks.reduce(\n async (prev, hook) => hook(await prev),\n Promise.resolve(requestInit)\n );\n\n return await fetch(url, requestInit).then((r) => r.json().then(\n (response) => this._afterHooks.reduce(\n async (result, hook) => hook(requestInit, await result),\n Promise.resolve(response)\n )\n ));\n }\n /**\n * Gets the configuration.\n */\n public getConfig() {\n return {\n endpoint: this.endpoint,\n fetchGraphQlHeaders: this.fetchGraphQlHeaders,\n };\n }\n\n public getMethods() {\n return {\n setEndpoint: this.setEndpoint.bind(this),\n setFetchGraphQlHeader: this.setFetchGraphQlHeader.bind(this),\n getFetchGraphQlHeader: this.getFetchGraphQlHeader.bind(this),\n removeFetchGraphQlHeader: this.removeFetchGraphQlHeader.bind(this),\n setFetchGraphQlHeaders: this.setFetchGraphQlHeaders.bind(this),\n fetchGraphQl: this.fetchGraphQl.bind(this),\n getConfig: this.getConfig.bind(this),\n addBeforeHook: this.addBeforeHook.bind(this),\n addAfterHook: this.addAfterHook.bind(this),\n };\n }\n}\n\nconst mesh = new FetchGraphQLMesh();\n\n/**\n * `FetchGraphQL` is a class that extends `FetchGraphQLMesh`.\n * It provides methods to get the GraphQL endpoint and headers.\n *\n * @class\n *\n */\nexport class FetchGraphQL extends FetchGraphQLMesh {\n get endpoint() {\n return this._endpoint ?? mesh.endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return (\n (this._endpoint\n ? this._fetchGraphQlHeaders\n : { ...this._fetchGraphQlHeaders, ...mesh.fetchGraphQlHeaders })\n );\n }\n}\n\nfunction minimizeGraphQlQuery(query: string) {\n // Remove comments\n query = query.replace(/#.*/g, '');\n\n // Remove extra spaces, tabs, and line breaks\n query = query.replace(/\\s+/g, ' ');\n\n return query.trim();\n}\n/**\n * Exports several methods from the `mesh` object.\n *\n * @property {Function} setEndpoint - Sets the GraphQL endpoint.\n * @property {Function} setFetchGraphQlHeaders - Sets the GraphQL headers.\n * @property {Function} setFetchGraphQlHeader - Sets a specific GraphQL header.\n * @property {Function} getFetchGraphQlHeader - Gets the value of a specific GraphQL header.\n * @property {Function} removeFetchGraphQlHeader - Removes a specific GraphQL header.\n * @property {Function} fetchGraphQl - Fetches GraphQL data.\n * @property {Function} getConfig - Gets the configuration.\n */\n\n// Global Mesh instance\nexport const {\n setEndpoint,\n setFetchGraphQlHeaders,\n setFetchGraphQlHeader,\n getFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n fetchGraphQl,\n getConfig,\n addBeforeHook,\n addAfterHook,\n} = mesh.getMethods();\n"],"names":["defaultHeaders","FetchGraphQLMesh","__publicField","endpoint","key","value","header","hook","query","options","fetchGraphQlHeaders","method","cache","signal","body","url","headers","minimizeGraphQlQuery","requestInit","prev","r","response","result","mesh","FetchGraphQL","setEndpoint","setFetchGraphQlHeaders","setFetchGraphQlHeader","getFetchGraphQlHeader","removeFetchGraphQlHeader","fetchGraphQl","getConfig","addBeforeHook","addAfterHook"],"mappings":"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"}
|
package/lib/aem/assets.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{getConfigValue as O}from"./configs.js";import{p as f,I as g}from"../../chunks/Image.js";import"../../chunks/
|
|
3
|
+
import{getConfigValue as O}from"./configs.js";import{p as f,I as g}from"../../chunks/Image.js";import"../../chunks/get-path-value.js";import"../../chunks/cjs.js";import"../../preact-jsx-runtime.js";import"../../chunks/icons/Add.js";import"../../i18n.js";import"../../chunks/vcomponent.js";import"../../chunks/image-params-keymap.js";import"../../signals.js";const b=["gif","jpg","jpeg","png","webp"],v=[90,180,270],U=["h","v","hv"];function l(e){let t=e;if(t.startsWith("//")){const{protocol:s}=window.location;t=s+t}return t}function I(e){return U.includes(e)}function L(e){return v.includes(e)}function y(e){return b.includes(e)}function u(e,t,s){if(e!==void 0&&!t(e))throw new Error(s)}function h(){const e=O("commerce-assets-enabled");return e&&(typeof e=="string"&&e.toLowerCase()==="true"||typeof e=="boolean"&&e===!0)}function R(){return{quality:80,format:"webp"}}function A(e){return!!(typeof e=="string"?new URL(l(e)):e).pathname.startsWith("/adobe/assets/urn:aaid:aem")}function w(e,t,s={}){const r={...R(),...s},{format:i,crop:n,...o}=r;u(i,y,"Invalid format"),u(o.flip,I,"Invalid flip"),u(o.rotate,L,"Invalid rotation");const a=Object.fromEntries(Object.entries(o).map(([p,d])=>[p,String(d)])),c=new URLSearchParams(a);if(n){const[p,d]=[n.xOrigin||0,n.yOrigin||0],[P,E]=[n.width||100,n.height||100],S=`${p}p,${d}p,${P}p,${E}p`;c.set("crop",S)}return`${e}/as/${t}.${i}?${c.toString()}`}function q(e,t,s={}){if(!h())return e;const r=new URL(l(e));if(!A(r))return e;const i=r.origin+r.pathname;return w(i,t,s)}function _(e){return t=>{const{wrapper:s,alias:m,params:r,imageProps:i}=e;if(!i.src)throw new Error("An image source is required. Please provide a `src` or `imageProps.src`.");const n=s??document.createElement("div"),o=w(i.src,m,r),a={width:r.width,height:r.height,crop:void 0,fit:void 0,auto:void 0},c={...i,width:r.width,height:r.height,src:o,params:a};f.render(g,c)(n),t.replaceWith(n)}}function x(e,t){function s(){const i=t.wrapper??document.createElement("div"),{imageProps:n,params:o}=t,a={...n,width:o.width,height:o.height};f.render(g,a)(i),e.replaceWith(i)}if(!h()){s();return}if(!t.imageProps.src)throw new Error("An image source is required. Please provide a `src` or `imageProps.src`.");const r=new URL(l(t.imageProps.src));if(!A(r)){s();return}_(t)(e)}export{w as generateAemAssetsOptimizedUrl,R as getDefaultAemAssetsOptimizationParams,h as isAemAssetsEnabled,A as isAemAssetsUrl,_ as makeAemAssetsImageSlot,q as tryGenerateAemAssetsOptimizedUrl,x as tryRenderAemAssetsImage};
|
|
4
4
|
//# sourceMappingURL=assets.js.map
|
package/lib/aem/configs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*! Copyright 2025 Adobe
|
|
2
2
|
All Rights Reserved. */
|
|
3
|
-
import{
|
|
3
|
+
import{g as u}from"../../chunks/get-path-value.js";import{d as f}from"../../chunks/cjs.js";let e=null,r=null,l=null;function C(){e=null,r=null,l=null}function s(t=e){return t?Object.keys(t==null?void 0:t.public).sort((i,o)=>{const a=i.split("/").filter(Boolean).length;return o.split("/").filter(Boolean).length-a}).find(i=>window.location.pathname===i||window.location.pathname.startsWith(i))??"/":(console.warn("No config found. Please call initializeConfig() first."),"/")}function c(){return e?Object.keys(e.public).filter(t=>t!=="default"):(console.warn("No config found. Please call initializeConfig() first."),[])}function m(){return c().length>=1}function w(t){if(!l)throw new Error("Configuration not initialized. Call initializeConfig() first.");const n=l.headers??{};return{...n.all??{},...n[t]??{}}}function g(t,n){var o;const i=(o=t.public)==null?void 0:o.default;return n==="/"||!t.public[n]?i:f(i,t.public[n])}function z(t){return e=t,r=s(e),l=g(e,r),l}function P(t){if(!l)throw new Error("Configuration not initialized. Call initializeConfig() first.");return u(l,t)}export{P as getConfigValue,w as getHeaders,c as getListOfRootPaths,s as getRootPath,z as initializeConfig,m as isMultistore,C as resetConfig};
|
|
4
4
|
//# sourceMappingURL=configs.js.map
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name": "@dropins/tools", "version": "1.5.0-
|
|
1
|
+
{"name": "@dropins/tools", "version": "1.5.0-alpha008", "license": "SEE LICENSE IN LICENSE.md"}
|
|
@@ -54,6 +54,12 @@ declare class FetchGraphQLMesh {
|
|
|
54
54
|
* @param key - The key of the header.
|
|
55
55
|
*/
|
|
56
56
|
removeFetchGraphQlHeader(key: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Gets the value of a specific GraphQL header.
|
|
59
|
+
* @param key - The key of the header.
|
|
60
|
+
* @returns The value of the header, or undefined if not found.
|
|
61
|
+
*/
|
|
62
|
+
getFetchGraphQlHeader(key: string): string | null | undefined;
|
|
57
63
|
/**
|
|
58
64
|
* Sets the GraphQL headers.
|
|
59
65
|
* @param header - The header object or a function that returns a header object.
|
|
@@ -120,6 +126,7 @@ declare class FetchGraphQLMesh {
|
|
|
120
126
|
getMethods(): {
|
|
121
127
|
setEndpoint: (endpoint: string) => void;
|
|
122
128
|
setFetchGraphQlHeader: (key: string, value: string | null) => void;
|
|
129
|
+
getFetchGraphQlHeader: (key: string) => string | null | undefined;
|
|
123
130
|
removeFetchGraphQlHeader: (key: string) => void;
|
|
124
131
|
setFetchGraphQlHeaders: (header: Header | ((prev: Header) => Header)) => void;
|
|
125
132
|
fetchGraphQl: <T = any>(query: string, options?: FetchOptions | undefined) => Promise<{
|
|
@@ -151,11 +158,12 @@ export declare class FetchGraphQL extends FetchGraphQLMesh {
|
|
|
151
158
|
* @property {Function} setEndpoint - Sets the GraphQL endpoint.
|
|
152
159
|
* @property {Function} setFetchGraphQlHeaders - Sets the GraphQL headers.
|
|
153
160
|
* @property {Function} setFetchGraphQlHeader - Sets a specific GraphQL header.
|
|
161
|
+
* @property {Function} getFetchGraphQlHeader - Gets the value of a specific GraphQL header.
|
|
154
162
|
* @property {Function} removeFetchGraphQlHeader - Removes a specific GraphQL header.
|
|
155
163
|
* @property {Function} fetchGraphQl - Fetches GraphQL data.
|
|
156
164
|
* @property {Function} getConfig - Gets the configuration.
|
|
157
165
|
*/
|
|
158
|
-
export declare const setEndpoint: (endpoint: string) => void, setFetchGraphQlHeaders: (header: Header | ((prev: Header) => Header)) => void, setFetchGraphQlHeader: (key: string, value: string | null) => void, removeFetchGraphQlHeader: (key: string) => void, fetchGraphQl: <T = any>(query: string, options?: FetchOptions) => Promise<{
|
|
166
|
+
export declare const setEndpoint: (endpoint: string) => void, setFetchGraphQlHeaders: (header: Header | ((prev: Header) => Header)) => void, setFetchGraphQlHeader: (key: string, value: string | null) => void, getFetchGraphQlHeader: (key: string) => string | null | undefined, removeFetchGraphQlHeader: (key: string) => void, fetchGraphQl: <T = any>(query: string, options?: FetchOptions) => Promise<{
|
|
159
167
|
errors?: FetchQueryError | undefined;
|
|
160
168
|
data: T;
|
|
161
169
|
}>, getConfig: () => {
|
|
@@ -3,6 +3,7 @@ import { ReCaptchaV3Response, PropsFormTypes, ReCaptchaV3Model } from './types/r
|
|
|
3
3
|
export declare const recaptchaFetchApi: {
|
|
4
4
|
setEndpoint: (endpoint: string) => void;
|
|
5
5
|
setFetchGraphQlHeader: (key: string, value: string | null) => void;
|
|
6
|
+
getFetchGraphQlHeader: (key: string) => string | null | undefined;
|
|
6
7
|
removeFetchGraphQlHeader: (key: string) => void;
|
|
7
8
|
setFetchGraphQlHeaders: (header: import('@adobe-commerce/fetch-graphql').Header | ((prev: import('@adobe-commerce/fetch-graphql').Header) => import('@adobe-commerce/fetch-graphql').Header)) => void;
|
|
8
9
|
fetchGraphQl: <T = any>(query: string, options?: import('@adobe-commerce/fetch-graphql').FetchOptions | undefined) => Promise<{
|