{"_id":"@bloomreach/vue3-sdk","_rev":"33-2589c9ae8501cbde3bbcc0fb305d98d5","name":"@bloomreach/vue3-sdk","dist-tags":{"latest":"22.0.5"},"versions":{"19.0.2":{"name":"@bloomreach/vue3-sdk","version":"19.0.2","_id":"@bloomreach/vue3-sdk@19.0.2","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"dist":{"shasum":"d47267807ac8c86b1537789c55d98fab49795886","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-19.0.2.tgz","fileCount":7,"integrity":"sha512-xmIaUk48IwsKeENgveW0+1dojbwtS+ZfK6Ic4InV99X0npJ5rOPJnm2r2JnIzF9B7zd+cuAnEzKtXAhz0/x/dg==","signatures":[{"sig":"MEQCIGWYM6tYFaZVHIgzcTADyE0w0Yc+A0ZH6bKqz99gLe1rAiA4yRGFmS/R8pj8YTqO3dp9O5lzPCYLLw2HJWqOk90ABg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCW8NACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmob4w//dWx95S5SQAB6xR0UtmsZ6P7ji/7r6h1j5kTiEvzz/qgrVt9F\r\nCjpzahGMs9FykeDB22gZbZ+SWaogswte8yYUm/XfrTPVOgSwmiQlXggCckMb\r\nzVBv8s7xF2XJA8vq2WWfSd/wn4icdVteXUqnGGA6JVLgN2Sd6kaPgdTLx8ql\r\nOnctbp/h3vwbi8/MNdZsbDOFepzlqnfX/bTVXxjgYrxH23IbaZBjAP1Tssr3\r\nvxnTs9m4a1dgqyjXK2QcOza7Ctj7IOZMPvG8w9KM+5APzRH9E2IdfKG/yZZA\r\n61DnIFLZC/+6YFZwiBAe/nusB570YUzhgCzElxXaUr2VKGeTzDvKRTn8gq4o\r\n80UgRghRKxBbDbFnc7o4ZtUM8R77cg07iWNxYJVrw33FsB2NAw8NWlJOgW/K\r\nC8VE5rFA3WtjAZgn9SGa2ekjA1wpBnoinVtky3HdNj2Iu0UImN5YhDyyKEkl\r\nxF+hsBEU6Al+SDY8pkkXDRnimRNDfCFFJcI/TjJQiIBBl9j+lijB/+Fga30/\r\nwWr7UkDapHZwrW4KuXkqHSnVFl22U0TUtlSarkBN1cO0kK/Eg+fDh46d1LWm\r\nis07bIc2kknh0r4/SSeF4TQEc17GdjjcsHWEN56opQG5kEw/JOnyvkcKL3FC\r\nmEuyv/sS8ZHP2tfVEOApUFieTvxB3ff9H7E=\r\n=hFFY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"8f3696ec4fe92036ee8583a2bca55ddc485e7ad7","scripts":{"dev":"vite build --watch","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit","type-check:watch":"vue-tsc --noEmit --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","_npmVersion":"9.6.0","description":"Bloomreach Vue.js SDK provides simplified headless integration with [Bloomreach Experience Manager](https://www.bloomreach.com/en/products/experience-manager) for Vue-based applications. This library interacts with the [Page Model API](https://documentati","directories":{},"_nodeVersion":"16.19.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"19.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.0","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@vue/tsconfig":"^0.1.3","@vitejs/plugin-vue":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_19.0.2_1678339853758_0.22339287012329767","host":"s3://npm-registry-packages"}},"19.0.2-beta.1":{"name":"@bloomreach/vue3-sdk","version":"19.0.2-beta.1","_id":"@bloomreach/vue3-sdk@19.0.2-beta.1","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"dist":{"shasum":"9226b022560393f6636e836e363446d98bc6e94c","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-19.0.2-beta.1.tgz","fileCount":7,"integrity":"sha512-QjBjcMoPtUDrT5ROE2x0AUkmtmSCTLnmfZeyNiZBplRo6NPDMv6RDRBYHvX0F+4S+KnQjXN4pr3oTVNp5SIdtA==","signatures":[{"sig":"MEYCIQC2NoUpwLLoxPn4B6zaGZHLy0sdMY6a38Qiesc2R74HcgIhAMsvRgZjB3TJBs3r7bf+oRf+f6OpIJY49T0KY0vYwV1B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98576,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCW9zACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmre9g//fyQfSBtMnqZyVSP1eD7qJoEm6pHPSf+1T32decvaGiTxxdDu\r\n+o5D9CrXGJMKsvhdK+zlhESZ4876+pCI7SRSBOT37MiP5fo35ql6vpu7GkA+\r\nvVQwhaGVr95nhs8PRVxtMK2ugT9KQ1AqfDHFXk2fto1JwPIadRcE5MVx2eqe\r\nKKOOUogJ8vHL9zpYSrNHcWSPkARL9n9Bv+yk5vI8wdv40xdN61/W8IvVZPPS\r\na1SA2MEtF+3duwRYqoYlyg2oByHzH20uSDetVuFRDxh1dhRvBgpyNXv9Rkb3\r\nV0Ut1/Jo14uadGGezaliJDq69dhC0F2dMyPQ2pGyVlX2HR/9bHZwGpU1Uc1q\r\nW3M7AqjWuJicFpN1TojfPqpx1k7n3YF8aqv2Zk1z8eTyS+ubPPpOXS6M7Pwd\r\nkUTCx5a7CwKcrDTnw91vMPDZRiNZHE/8Y3b3FaiI+tOLNOlOdCSf+jjF1Q4r\r\nnJVbJvbFSDdJOAXib9FrKAJzSRf/SlX5YhXI/xbOzKiCAfCwpgo8WysWzttr\r\nkxtjDlt5TNFq1PZ04ZF8hMcW2Lon6e3dQGPP5A0mTPc8K5dqL+21RWOMZkAl\r\nJ7LlkuRSqVAZvT+NzbRR2e10sUbpcjZArHdLZr+TAOyu916Pw2b1+WnAdDIa\r\nkiiBG2df3gwn4dmSCcI/OlcPfRnB61iL7MA=\r\n=IWxD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","readme":"# Bloomreach Vue.js SDK\n\nBloomreach Vue.js SDK provides simplified headless integration with [Bloomreach Experience Manager](https://www.bloomreach.com/en/products/experience-manager)\nfor Vue-based applications. This library interacts with the [Page Model API](https://documentation.bloomreach.com/api-reference/content/delivery/page-delivery-api/page-delivery-api.html)\nand [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk) and\nexposes a simplified declarative Vue.js interface over the Page Model.\n\n## Features\n\n- Bloomreach Page Vue component;\n- Bloomreach Components Vue component;\n- Manage Content Button;\n- Manage Menu Button;\n- [Slots](https://vuejs.org/v2/guide/components-slots.html) support;\n- [Vue Server-Side Rendering](https://ssr.vuejs.org/) support;\n- [Nuxt.js](https://nuxtjs.org/) support;\n- [Vue Router](https://router.vuejs.org/) support;\n- [Jest](https://jestjs.io/) support.\n\n**Important notice**: Vue SDK does not work in combination with `nomarkup`\nxtype container components. (The xtype of a container component is described [here](https://documentation.bloomreach.com/api-reference/content/management/site-management-api/schemas.html) and [here](https://documentation.bloomreach.com/14/library/concepts/template-composer/channel-editor-containers.html))\nThe problem is that Vue 2 does not support multi-root templates and the fragement libraries such as [Vue Fragment](https://www.npmjs.com/package/vue-fragment) that enable this for Vue 2 all add 'magic' parentNodes which is incompatible with some of the Bloomreach Experience Manager code constructs. We are looking into updating to Vue 3 when possible which [does support multi-root templates](https://v3.vuejs.org/guide/migration/fragments.html#_2-x-syntax) without extra magic.\n\n## Get Started\n\n### Installation\n\nTo get the SDK into your project with [NPM](https://docs.npmjs.com/cli/npm):\n\n```bash\nnpm install @bloomreach/vue-sdk\n```\n\nAnd with [Yarn](https://yarnpkg.com):\n\n```bash\nyarn add @bloomreach/vue-sdk\n```\n\n### Usage\n\nThe following code snippets render a simple page with a\n[Banner](https://documentation.bloomreach.com/library/setup/hst-components/overview.html)\ncomponent.\n\n#### `src/main.ts`\n\nIn the app's entry file, it needs to import and\n[install](https://vuejs.org/v2/guide/plugins.html#Using-a-Plugin) the `BrSdk`\nplugin to make the SDK components available globally.\n\n```javascript\nimport Vue from 'vue';\nimport { BrSdk } from '@bloomreach/vue-sdk';\n\nVue.use(BrSdk);\n\n// ...\n```\n\n#### `src/App.vue`\n\nIn the `App` component, it needs to pass the configuration and brXM components\nmapping into the `br-page` component inputs.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template v-slot:default=\"props\">\n      <header>\n        <a :href=\"props.page.getUrl('/')\">Home</a>\n        <br-component component=\"menu\" />\n      </header>\n      <section>\n        <br-component component=\"main\" />\n      </section>\n      <footer>\n        <br-component component=\"footer\" />\n      </footer>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  import Banner from './components/Banner.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { Banner },\n      };\n    },\n  };\n</script>\n```\n\n#### `src/components/Banner.vue`\n\nFinally, in the `Banner` component, it can consume the component data via the\n`component` prop.\n\n```html\n<template>\n  <div>Banner: {{ component.getName() }}</div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\n### Non-blocking render mode (NBRMode)\n\nNon-blocking rendering mode can be used to decrease the time for your application to load fully on the client side. By\ndefault the NBRMode configuration is `false` to avoid breaking existing setups. Setting it to `true` will enable\nnon-blocking render mode. When the mode is active the children of the BrPage component will start mounting while the\nPage Model is being fetched. These children might contain logic themselves that queries some external API and using\nnon-blocking render mode would allow this to be executed in parallel to requesting the Page Model.\n\n```html\n<template>\n  Hello\n</template>\n\n<script>\n  export default {\n    name: 'MyComponent',\n    async mounted() {\n      // This will run in parallel to fetching the PageModel from the Delivery API\n      await fetch('https://yourapi.com');\n    }\n  };\n</script>\n```\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <my-component></my-component>\n    <template v-slot:default=\"props\">\n      ...\n  </br-page>\n</template>\n\n<script>\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n          NBRMode: true,\n        },\n        mapping: { ... },\n      };\n    },\n  };\n</script>\n```\n### Configuration\n\nThe `br-page` component supports several options you may use to customize page\ninitialization. These options will be passed to the `initialize` function from\n[`@bloomreach/spa-sdk`](https://www.npmjs.com/package/@bloomreach/spa-sdk). See\n[here](https://www.npmjs.com/package/@bloomreach/spa-sdk#configuration) for the\nfull configuration documentation.\n\n### Mapping\n\nThe `br-page` component provides a way to link Vue components with the brXM\nones. It requires to pass the `mapping` property that maps the component type\nwith its representation.\n\nThe [Container Items](https://www.npmjs.com/package/@bloomreach/spa-sdk#container-item) can be\nmapped by their labels.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import NewsList from './components/NewsList.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { 'News List': NewsList },\n      };\n    },\n  };\n</script>\n```\n\nThe [Containers](https://www.npmjs.com/package/@bloomreach/spa-sdk#container-item)\ncan be only mapped by their [type](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html),\nso you need to use [constants](https://www.npmjs.com/package/@bloomreach/spa-sdk#constants) from\n[`@bloomreach/spa-sdk`](www.npmjs.com/package/@bloomreach/spa-sdk). By default,\nthe Vue.js SDK provides an implementation for all the container types as it is\ndefined in the [documentation](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html).\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import { TYPE_CONTAINER_INLINE } from '@bloomreach/spa-sdk';\n  import InlineContainer from './components/InlineContainer.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { [TYPE_CONTAINER_INLINE]: InlineContainer },\n      };\n    },\n  };\n</script>\n```\n\nFrom within the Container component, the Container Items can be accessed via the\n`getChildren` method. This can be used to reorder or wrap child elements.\n\n```html\n<template>\n  <div>\n    <span v-for=\"(child, key) in component.getChildren()\" :key=\"key\">\n      <br-component :component=\"child\" />\n    </span>\n  </div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\nThat is also possible to render children via the default slot.\n\n```javascript\nexport default {\n  render(createElement) {\n    return createElement(\n      'div',\n      this.$slots.default.map((node) => createElement('span', [node])),\n    );\n  },\n};\n```\n\nThe [Components](https://www.npmjs.com/package/@bloomreach/spa-sdk#component)\ncan be mapped by their names. It is useful for a menu component mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import Menu from './components/Menu.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { menu: Menu },\n      };\n    },\n  };\n</script>\n```\n\nBy default, container items that are not mapped will be rendered as a warning\ntext. There is an option to override the fallback.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import { TYPE_CONTAINER_ITEM_UNDEFINED } from '@bloomreach/spa-sdk';\n  import Fallback from './components/Fallback.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { [TYPE_CONTAINER_ITEM_UNDEFINED]: Fallback },\n      };\n    },\n  };\n</script>\n```\n\n### Inline Mapping\n\nThere is also another way to render a component. In case you need to show a\nstatic component or a component from the abstract page, you can use inline\ncomponent mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <menu :component=\"component\" :page=\"page\" />\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  import Menu from './components/Menu.vue';\n\n  export default {\n    components: { Menu },\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: {},\n      };\n    },\n  };\n</script>\n```\n\nIn a component it is also possible to point where the component's children are\ngoing to be placed.\n\n```html\n<template>\n  <div>\n    @copy; Bloomreach\n    <br-component />\n  </div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\nThe component data in case of inline mapping can be accessed via the template\ncontext.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <ul>\n            <li><a :href=\"page.getUrl('/')\">Home</a></li>\n            <li v-for=\"(item, key) in component.getModels()\" :key=\"key\">...</li>\n          </ul>\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: {},\n      };\n    },\n  };\n</script>\n```\n\n### Buttons\n\nIt is recommended to add the css style `position: relative` to the Buttons\nso they will position correctly within their parent container component.\n\nManage menu button can be placed inside a menu component using\n`br-manage-menu-button` component.\n\n```html\n<template>\n  <ul v-if=\"menu\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-menu-button :menu=\"menu\" />\n  </ul>\n</template>\n\n<script>\n  import { Menu, Reference } from '@bloomreach/spa-sdk';\n\n  interface MenuModels {\n    menu: Reference;\n  }\n\n  export default {\n    computed: {\n      menu() {\n        const { menu: menuRef } = this.component.getModels<MenuModels>();\n\n        return menuRef && this.page.getContent<Menu>(menuRef);\n      },\n    },\n    props: ['component', 'page'],\n  };\n</script>\n```\n\nManage content button can be placed inside a component using\n`br-manage-content-button` component with non-empty `content` property.\n\n```html\n<template>\n  <div v-if=\"document\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      :content=\"document\"\n      document-template-query=\"new-banner-document\"\n      folder-template-query=\"new-banner-folder\"\n      parameter=\"document\"\n      root=\"banners\"\n      :relative=\"true\"\n    />\n  </div>\n</template>\n\n<script>\n  import { Document, Reference } from '@bloomreach/spa-sdk';\n\n  interface BannerModels {\n    document: Reference;\n  }\n\n  export default {\n    computed: {\n      document() {\n        const { document: documentRef } = this.component.getModels<BannerModels>();\n\n        return documentRef && this.page.getContent<Document>(documentRef);\n      },\n    },\n    props: ['component', 'page'],\n  };\n</script>\n```\n\nAdd new content button can be placed inside a component using\n`br-manage-content-button` directive but without passing a content entity.\n\n```html\n<template>\n  <div :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      document-template-query=\"new-news-document\"\n      folder-template-query=\"new-news-folder\"\n      root=\"news\"\n    />\n  </div>\n</template>\n\n<script>\n  export default {\n    props: ['component', 'page'],\n  };\n</script>\n```\n\n### Using the SPA SDK selectively on certain pages\nIf you are navigating between pages that have and those that don't have a SDK instance you will need to persist the preview related data.\nSee detailed guide how to setup it in framework specific examples, [nuxtjs](https://github.com/bloomreach/spa-sdk/tree/main/examples/nuxt#persist-preview-data-for-pages-without-sdk-instance), [vue](https://github.com/bloomreach/spa-sdk/tree/main/examples/vue#persist-preview-data-for-pages-without-sdk-instance).\n\n## License\n\nPublished under [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)\nlicense.\n\n## Reference\n\nThe Vue.js SDK is using [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk#reference) to interact\nwith the brXM.\n\n### br-page\n\nThis is the entry point to the page model. This component requests and\ninitializes the page model, and then renders the page root component\nrecursively.\n\n| Property        | Required | Description                                                                                                                                  |\n| --------------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `configuration` |  _yes_   | The [configuration](#configuration) of the SPA SDK.                                                                                          |\n| `mapping`       |  _yes_   | The brXM and Vue.js components [mapping](#mapping).                                                                                          |\n| `page`          |   _no_   | Preinitialized page instance or prefetched page model. Mostly that should be used to transfer state from the server-side to the client-side. |\n\nThis component also supports a default slot transclusion. `<template>` from the\ncomponent contents will be rendered in the root component context.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The root component.        |\n| `page`      | The current page instance. |\n\n### br-component\n\nThis component points to where children or some component should be placed.\n`br-component` can be used inside `br-page` or mapped components only. If it\ncontains `<template>` in the contents, then the template will be rendered in the\ncontext of every matched component. Otherwise, it will try to render all\nchildren components recursively.\n\n| Property    | Required | Description                                                                                                                                                                                                                     |\n| ----------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `component` |   _no_   | The component instance or a path to a component. The path is defined as a slash-separated components name chain relative to the current component (e.g. `main/container`). If it is omitted, all the children will be rendered. |\n\nThe template context holds references to the current component and the current\npage instance.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The current component.     |\n| `page`      | The current page instance. |\n\n### br-manage-content-button\n\nThis component places a button on the page that opens the linked content in the\ndocument editor or opens a document editor to create a new one. The button will\nonly be shown in preview mode.\n\n| Property                    | Required | Description                                                                                     |\n| --------------------------- | :------: | ----------------------------------------------------------------------------------------------- |\n| `content`                   |   _no_   | The content entity to open for editing.                                                         |\n| `document-template-query`   |   _no_   | Template query to use for creating new documents. For Content SaaS, the key is like `new-banner-document` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-document` for `accordion` document type in `vuestorefront` namespace. |\n| `folder-template-query`     |   _no_   | Template query to use in case folders specified by `path` do not yet exist and must be created. For Content SaaS, the key is like `new-banner-folder` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-folder` for `accordion` document type in `vuestorefront` namespace. |\n| `path`                      |   _no_   | Initial location of a new document, relative to the `root`.                                     |\n| `parameter`                 |   _no_   | Name of the component parameter in which the document path is stored.                           |\n| `pickerConfiguration`       |   _no_   | The root path of the CMS configuration to use for the picker, relative to `/hippo:configuration/hippo:frontend/cms`. |\n| `pickerEnableUpload`        |   _no_   | When this picker is used for images, this flag determines if uploads are enabled.               |\n| `pickerInitialPath`         |   _no_   | The initial path to use in the picker if nothing has been selected yet, relative to the pickerRootPath. |\n| `pickerRemembersLastVisited`|   _no_   | Whether the picker remembers the last visited path.                                             |\n| `pickerRootPath`            |   _no_   | The absolute root path to use in the picker, or an empty string if the channel content path is used. |\n| `pickerSelectableNodeTypes` |   _no_   | Types of nodes to be able to select in the picker, separated by a comma.                        |\n| `relative`                  |   _no_   | Flag indicating that the picked value should be stored as a relative path.                      |\n| `root`                      |   _no_   | Path to the root folder of selectable document locations.                                       |\n\n### br-manage-menu-button\n\nThis directive places a button on the page that opens the linked menu in the\nmenu editor. The button will only be shown in preview mode.\n\n| Property | Required | Description             |\n| -------- | :------: | ----------------------- |\n| `menu`   |  _yes_   | The related menu model. |\n","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"8f3696ec4fe92036ee8583a2bca55ddc485e7ad7","scripts":{"dev":"vite build --watch","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit","type-check:watch":"vue-tsc --noEmit --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","_npmVersion":"9.6.0","description":"Bloomreach Vue.js SDK provides simplified headless integration with [Bloomreach Experience Manager](https://www.bloomreach.com/en/products/experience-manager) for Vue-based applications. This library interacts with the [Page Model API](https://documentati","directories":{},"_nodeVersion":"16.19.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"19.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^4.0.0","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@vue/tsconfig":"^0.1.3","@vitejs/plugin-vue":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_19.0.2-beta.1_1678339955552_0.6916311472128627","host":"s3://npm-registry-packages"}},"19.0.2-beta.2":{"name":"@bloomreach/vue3-sdk","version":"19.0.2-beta.2","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@19.0.2-beta.2","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"e30d70fcde683db37a825f52692443bdd8308154","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-19.0.2-beta.2.tgz","fileCount":7,"integrity":"sha512-BbvROipOBB6rfFNw5knDsv8dutPPXvqdqaGlgRwBf08YDqvicDPo57SPzKQkH4YXo0MSVkArPMVyorsZVpGMEA==","signatures":[{"sig":"MEYCIQDQ6FWIXLA/KSkW/ro4tMffrwf6hLEQe+GL3uayyqA/tAIhAJVpNKKs0tnePVbFfcShOsZUN6cNmu/IstbNAdYYKo9S","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":98999,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCXA3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr5OA/+JgJ2wTGa3B4sYgnVCDZHEpjapYtAQhYBGbNfrRnAJ5PD6dQs\r\nKOYccogzgFPKe0CgMgzeBZhkuLOFXc508H7hZYrq1JDJgiEptnpVt3odsHeE\r\n8ago0XN5xBEjK4FpevuJnY16PCqbtPrdayn6iUZKH/aEE4Huog08W6n3Sezt\r\nyUb85fxfR6bsSX/rFnWuG3ILexg+V8HVo0JxUg5xGfVGBBg0VRBBGoRrloZg\r\nrcGCnwMa37xebncH2x3m8SSxgjdfhYdgDjSHNpHur67moRtJ4EipCMps8vUc\r\nlrpRGT6gFtUsDVA6tfUJrcfBANktzToC4m8HAfZbe7FP2HYnKObiCi+gH8+3\r\nYl/vIyyLe3FaQ7v8YfJjv2jfnrxvIQz4GBDMHRP+i/9Lh3nd5oJxXeRiwICD\r\nOcsJO+ed04P5obL7alnrJS+eUCXV2SQ8K0gW6s7ymZaBuqz2iNuWtroBtfMz\r\nQvS2KIJhTd8b6Tzs6a4VvOaNvNJG04WYz7jRiw++he0zmTj0t3tkoC8NJVMV\r\nOWQomqO6S8nmOKiDNmDyZcTuO0AKk3IApemkCm2R9hTWp7+aPs8c/eZjjyha\r\nO3ryUYdOylnDTQ0de2kCFDIA2lOgXL7SYobLd1NMpbtSmB+Ymi/ytGQ0MVMc\r\nFs6D01eaO+7VdkmT2T0ro4ycnj33VNI9DwA=\r\n=CoPX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","readme":"# Bloomreach Vue.js SDK\n\nBloomreach Vue.js SDK provides simplified headless integration with [Bloomreach Experience Manager](https://www.bloomreach.com/en/products/experience-manager)\nfor Vue-based applications. This library interacts with the [Page Model API](https://documentation.bloomreach.com/api-reference/content/delivery/page-delivery-api/page-delivery-api.html)\nand [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk) and\nexposes a simplified declarative Vue.js interface over the Page Model.\n\n## Features\n\n- Bloomreach Page Vue component;\n- Bloomreach Components Vue component;\n- Manage Content Button;\n- Manage Menu Button;\n- [Slots](https://vuejs.org/v2/guide/components-slots.html) support;\n- [Vue Server-Side Rendering](https://ssr.vuejs.org/) support;\n- [Nuxt.js](https://nuxtjs.org/) support;\n- [Vue Router](https://router.vuejs.org/) support;\n- [Jest](https://jestjs.io/) support.\n\n**Important notice**: Vue SDK does not work in combination with `nomarkup`\nxtype container components. (The xtype of a container component is described [here](https://documentation.bloomreach.com/api-reference/content/management/site-management-api/schemas.html) and [here](https://documentation.bloomreach.com/14/library/concepts/template-composer/channel-editor-containers.html))\nThe problem is that Vue 2 does not support multi-root templates and the fragement libraries such as [Vue Fragment](https://www.npmjs.com/package/vue-fragment) that enable this for Vue 2 all add 'magic' parentNodes which is incompatible with some of the Bloomreach Experience Manager code constructs. We are looking into updating to Vue 3 when possible which [does support multi-root templates](https://v3.vuejs.org/guide/migration/fragments.html#_2-x-syntax) without extra magic.\n\n## Get Started\n\n### Installation\n\nTo get the SDK into your project with [NPM](https://docs.npmjs.com/cli/npm):\n\n```bash\nnpm install @bloomreach/vue-sdk\n```\n\nAnd with [Yarn](https://yarnpkg.com):\n\n```bash\nyarn add @bloomreach/vue-sdk\n```\n\n### Usage\n\nThe following code snippets render a simple page with a\n[Banner](https://documentation.bloomreach.com/library/setup/hst-components/overview.html)\ncomponent.\n\n#### `src/main.ts`\n\nIn the app's entry file, it needs to import and\n[install](https://vuejs.org/v2/guide/plugins.html#Using-a-Plugin) the `BrSdk`\nplugin to make the SDK components available globally.\n\n```javascript\nimport Vue from 'vue';\nimport { BrSdk } from '@bloomreach/vue-sdk';\n\nVue.use(BrSdk);\n\n// ...\n```\n\n#### `src/App.vue`\n\nIn the `App` component, it needs to pass the configuration and brXM components\nmapping into the `br-page` component inputs.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template v-slot:default=\"props\">\n      <header>\n        <a :href=\"props.page.getUrl('/')\">Home</a>\n        <br-component component=\"menu\" />\n      </header>\n      <section>\n        <br-component component=\"main\" />\n      </section>\n      <footer>\n        <br-component component=\"footer\" />\n      </footer>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  import Banner from './components/Banner.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { Banner },\n      };\n    },\n  };\n</script>\n```\n\n#### `src/components/Banner.vue`\n\nFinally, in the `Banner` component, it can consume the component data via the\n`component` prop.\n\n```html\n<template>\n  <div>Banner: {{ component.getName() }}</div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\n### Non-blocking render mode (NBRMode)\n\nNon-blocking rendering mode can be used to decrease the time for your application to load fully on the client side. By\ndefault the NBRMode configuration is `false` to avoid breaking existing setups. Setting it to `true` will enable\nnon-blocking render mode. When the mode is active the children of the BrPage component will start mounting while the\nPage Model is being fetched. These children might contain logic themselves that queries some external API and using\nnon-blocking render mode would allow this to be executed in parallel to requesting the Page Model.\n\n```html\n<template>\n  Hello\n</template>\n\n<script>\n  export default {\n    name: 'MyComponent',\n    async mounted() {\n      // This will run in parallel to fetching the PageModel from the Delivery API\n      await fetch('https://yourapi.com');\n    }\n  };\n</script>\n```\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <my-component></my-component>\n    <template v-slot:default=\"props\">\n      ...\n  </br-page>\n</template>\n\n<script>\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n          NBRMode: true,\n        },\n        mapping: { ... },\n      };\n    },\n  };\n</script>\n```\n### Configuration\n\nThe `br-page` component supports several options you may use to customize page\ninitialization. These options will be passed to the `initialize` function from\n[`@bloomreach/spa-sdk`](https://www.npmjs.com/package/@bloomreach/spa-sdk). See\n[here](https://www.npmjs.com/package/@bloomreach/spa-sdk#configuration) for the\nfull configuration documentation.\n\n### Mapping\n\nThe `br-page` component provides a way to link Vue components with the brXM\nones. It requires to pass the `mapping` property that maps the component type\nwith its representation.\n\nThe [Container Items](https://www.npmjs.com/package/@bloomreach/spa-sdk#container-item) can be\nmapped by their labels.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import NewsList from './components/NewsList.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { 'News List': NewsList },\n      };\n    },\n  };\n</script>\n```\n\nThe [Containers](https://www.npmjs.com/package/@bloomreach/spa-sdk#container-item)\ncan be only mapped by their [type](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html),\nso you need to use [constants](https://www.npmjs.com/package/@bloomreach/spa-sdk#constants) from\n[`@bloomreach/spa-sdk`](www.npmjs.com/package/@bloomreach/spa-sdk). By default,\nthe Vue.js SDK provides an implementation for all the container types as it is\ndefined in the [documentation](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html).\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import { TYPE_CONTAINER_INLINE } from '@bloomreach/spa-sdk';\n  import InlineContainer from './components/InlineContainer.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { [TYPE_CONTAINER_INLINE]: InlineContainer },\n      };\n    },\n  };\n</script>\n```\n\nFrom within the Container component, the Container Items can be accessed via the\n`getChildren` method. This can be used to reorder or wrap child elements.\n\n```html\n<template>\n  <div>\n    <span v-for=\"(child, key) in component.getChildren()\" :key=\"key\">\n      <br-component :component=\"child\" />\n    </span>\n  </div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\nThat is also possible to render children via the default slot.\n\n```javascript\nexport default {\n  render(createElement) {\n    return createElement(\n      'div',\n      this.$slots.default.map((node) => createElement('span', [node])),\n    );\n  },\n};\n```\n\nThe [Components](https://www.npmjs.com/package/@bloomreach/spa-sdk#component)\ncan be mapped by their names. It is useful for a menu component mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import Menu from './components/Menu.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { menu: Menu },\n      };\n    },\n  };\n</script>\n```\n\nBy default, container items that are not mapped will be rendered as a warning\ntext. There is an option to override the fallback.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script>\n  import { TYPE_CONTAINER_ITEM_UNDEFINED } from '@bloomreach/spa-sdk';\n  import Fallback from './components/Fallback.vue';\n\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: { [TYPE_CONTAINER_ITEM_UNDEFINED]: Fallback },\n      };\n    },\n  };\n</script>\n```\n\n### Inline Mapping\n\nThere is also another way to render a component. In case you need to show a\nstatic component or a component from the abstract page, you can use inline\ncomponent mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <menu :component=\"component\" :page=\"page\" />\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  import Menu from './components/Menu.vue';\n\n  export default {\n    components: { Menu },\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: {},\n      };\n    },\n  };\n</script>\n```\n\nIn a component it is also possible to point where the component's children are\ngoing to be placed.\n\n```html\n<template>\n  <div>\n    @copy; Bloomreach\n    <br-component />\n  </div>\n</template>\n\n<script>\n  export default { props: ['component'] };\n</script>\n```\n\nThe component data in case of inline mapping can be accessed via the template\ncontext.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <ul>\n            <li><a :href=\"page.getUrl('/')\">Home</a></li>\n            <li v-for=\"(item, key) in component.getModels()\" :key=\"key\">...</li>\n          </ul>\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  export default {\n    data() {\n      return {\n        configuration: {\n          /* ... */\n        },\n        mapping: {},\n      };\n    },\n  };\n</script>\n```\n\n### Buttons\n\nIt is recommended to add the css style `position: relative` to the Buttons\nso they will position correctly within their parent container component.\n\nManage menu button can be placed inside a menu component using\n`br-manage-menu-button` component.\n\n```html\n<template>\n  <ul v-if=\"menu\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-menu-button :menu=\"menu\" />\n  </ul>\n</template>\n\n<script>\n  import { Menu, Reference } from '@bloomreach/spa-sdk';\n\n  interface MenuModels {\n    menu: Reference;\n  }\n\n  export default {\n    computed: {\n      menu() {\n        const { menu: menuRef } = this.component.getModels<MenuModels>();\n\n        return menuRef && this.page.getContent<Menu>(menuRef);\n      },\n    },\n    props: ['component', 'page'],\n  };\n</script>\n```\n\nManage content button can be placed inside a component using\n`br-manage-content-button` component with non-empty `content` property.\n\n```html\n<template>\n  <div v-if=\"document\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      :content=\"document\"\n      document-template-query=\"new-banner-document\"\n      folder-template-query=\"new-banner-folder\"\n      parameter=\"document\"\n      root=\"banners\"\n      :relative=\"true\"\n    />\n  </div>\n</template>\n\n<script>\n  import { Document, Reference } from '@bloomreach/spa-sdk';\n\n  interface BannerModels {\n    document: Reference;\n  }\n\n  export default {\n    computed: {\n      document() {\n        const { document: documentRef } = this.component.getModels<BannerModels>();\n\n        return documentRef && this.page.getContent<Document>(documentRef);\n      },\n    },\n    props: ['component', 'page'],\n  };\n</script>\n```\n\nAdd new content button can be placed inside a component using\n`br-manage-content-button` directive but without passing a content entity.\n\n```html\n<template>\n  <div :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      document-template-query=\"new-news-document\"\n      folder-template-query=\"new-news-folder\"\n      root=\"news\"\n    />\n  </div>\n</template>\n\n<script>\n  export default {\n    props: ['component', 'page'],\n  };\n</script>\n```\n\n### Using the SPA SDK selectively on certain pages\nIf you are navigating between pages that have and those that don't have a SDK instance you will need to persist the preview related data.\nSee detailed guide how to setup it in framework specific examples, [nuxtjs](https://github.com/bloomreach/spa-sdk/tree/main/examples/nuxt#persist-preview-data-for-pages-without-sdk-instance), [vue](https://github.com/bloomreach/spa-sdk/tree/main/examples/vue#persist-preview-data-for-pages-without-sdk-instance).\n\n## License\n\nPublished under [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)\nlicense.\n\n## Reference\n\nThe Vue.js SDK is using [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk#reference) to interact\nwith the brXM.\n\n### br-page\n\nThis is the entry point to the page model. This component requests and\ninitializes the page model, and then renders the page root component\nrecursively.\n\n| Property        | Required | Description                                                                                                                                  |\n| --------------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `configuration` |  _yes_   | The [configuration](#configuration) of the SPA SDK.                                                                                          |\n| `mapping`       |  _yes_   | The brXM and Vue.js components [mapping](#mapping).                                                                                          |\n| `page`          |   _no_   | Preinitialized page instance or prefetched page model. Mostly that should be used to transfer state from the server-side to the client-side. |\n\nThis component also supports a default slot transclusion. `<template>` from the\ncomponent contents will be rendered in the root component context.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The root component.        |\n| `page`      | The current page instance. |\n\n### br-component\n\nThis component points to where children or some component should be placed.\n`br-component` can be used inside `br-page` or mapped components only. If it\ncontains `<template>` in the contents, then the template will be rendered in the\ncontext of every matched component. Otherwise, it will try to render all\nchildren components recursively.\n\n| Property    | Required | Description                                                                                                                                                                                                                     |\n| ----------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `component` |   _no_   | The component instance or a path to a component. The path is defined as a slash-separated components name chain relative to the current component (e.g. `main/container`). If it is omitted, all the children will be rendered. |\n\nThe template context holds references to the current component and the current\npage instance.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The current component.     |\n| `page`      | The current page instance. |\n\n### br-manage-content-button\n\nThis component places a button on the page that opens the linked content in the\ndocument editor or opens a document editor to create a new one. The button will\nonly be shown in preview mode.\n\n| Property                    | Required | Description                                                                                     |\n| --------------------------- | :------: | ----------------------------------------------------------------------------------------------- |\n| `content`                   |   _no_   | The content entity to open for editing.                                                         |\n| `document-template-query`   |   _no_   | Template query to use for creating new documents. For Content SaaS, the key is like `new-banner-document` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-document` for `accordion` document type in `vuestorefront` namespace. |\n| `folder-template-query`     |   _no_   | Template query to use in case folders specified by `path` do not yet exist and must be created. For Content SaaS, the key is like `new-banner-folder` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-folder` for `accordion` document type in `vuestorefront` namespace. |\n| `path`                      |   _no_   | Initial location of a new document, relative to the `root`.                                     |\n| `parameter`                 |   _no_   | Name of the component parameter in which the document path is stored.                           |\n| `pickerConfiguration`       |   _no_   | The root path of the CMS configuration to use for the picker, relative to `/hippo:configuration/hippo:frontend/cms`. |\n| `pickerEnableUpload`        |   _no_   | When this picker is used for images, this flag determines if uploads are enabled.               |\n| `pickerInitialPath`         |   _no_   | The initial path to use in the picker if nothing has been selected yet, relative to the pickerRootPath. |\n| `pickerRemembersLastVisited`|   _no_   | Whether the picker remembers the last visited path.                                             |\n| `pickerRootPath`            |   _no_   | The absolute root path to use in the picker, or an empty string if the channel content path is used. |\n| `pickerSelectableNodeTypes` |   _no_   | Types of nodes to be able to select in the picker, separated by a comma.                        |\n| `relative`                  |   _no_   | Flag indicating that the picked value should be stored as a relative path.                      |\n| `root`                      |   _no_   | Path to the root folder of selectable document locations.                                       |\n\n### br-manage-menu-button\n\nThis directive places a button on the page that opens the linked menu in the\nmenu editor. The button will only be shown in preview mode.\n\n| Property | Required | Description             |\n| -------- | :------: | ----------------------- |\n| `menu`   |  _yes_   | The related menu model. |\n","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"4103a99f69d63a8c4398bd0d4135f282a7a8653e","scripts":{"dev":"vite build --watch","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit","type-check:watch":"vue-tsc --noEmit --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"9.6.0","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.19.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"19.0.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^4.0.0","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@vue/tsconfig":"^0.1.3","@vitejs/plugin-vue":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_19.0.2-beta.2_1678340150923_0.6079312559288175","host":"s3://npm-registry-packages"}},"19.0.2-beta.3":{"name":"@bloomreach/vue3-sdk","version":"19.0.2-beta.3","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@19.0.2-beta.3","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"00b2da709d445691589f8a203d1047c1763a2168","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-19.0.2-beta.3.tgz","fileCount":7,"integrity":"sha512-L9veVJ9VOp87wtiYCdC439ldoVZN503Jm2AoSDVZcbpW+dREol7LQ9LGRqJnqp0tD/qhW97XqTFRmUZUlBA2bA==","signatures":[{"sig":"MEQCIF5rmAnu+E6/AEs/GuL1028wdl0Xp25MUuROBk0JQC0HAiAOgJnaRzPlgj58oB6FG6Jq2in0SskABsZbl6GVH5gFog==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":101611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkLId5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpClQ/9EJeFTXjMBIa6K8/Hrgi4DWgkgm5OPBzS7QP9u9ZqwHNLf62l\r\nZmpD3N5Af9wfOlu6j2xaGzPnYNUyxUCrAbsecgrEgEU4M3+iYEcgjflyKffB\r\nFWXE5ZANv90UDmWYje/aLkv+kgzy7wxu7FNXpH07OFGd4AWpIMsoslO/i6LE\r\ncd+I0F65xShtby78tsnrx97MTbD5hjq63DMFuTS3KRNxb1/f4jwhpNIyB9FY\r\nw0ocyyKnPlYaMwuNdwJwh9a5qDbghFfY2wnkGwTrAMFo6hhSrth148L9Vx0j\r\nuMJYED1yah3MsXKsjfCKXAdI9d+DDWd2qA9sV8YPpwWrAz6RbtT85ED0bzRD\r\nvYhN1eAYGhFtgy3jtQ4VGBpOAzgUwbieyAHHF2eFNjiYOC9ryCLvTU2zpx37\r\nWe01ZYgGmgkxz40MMREX08fV4PCUdwHm4HtlP9UYtSk+y35/PugzNeFuAf2A\r\n8LkK86TPU1/HU9dnVFGhWvoAgZuu1PBa4jMzkyf0alHggROF4rbB/7/jDq9U\r\nd/BT8P6hFW0OKjoCclt1et7qjApqwPzTW8FWwkoGGjemJpoTA5EZZ5f5sucW\r\noRRxRC1u/RUsTNb/EmFKc8Xuk05GoOS+7JQX1EZt05wxMsNHl5C69F7A1BR6\r\nIH0C0a87ZMJ8p2rhaq3Bq3Mtp4EcLsfxyVg=\r\n=wT2O\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"6261a7f6bc2a07f1059cd4de60092865e3583e7c","scripts":{"dev":"vite build --watch","test":"vitest","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"9.6.2","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.19.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"19.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.0","vitest":"^0.29.1","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@types/jsdom":"^21.1.0","@vue/tsconfig":"^0.1.3","@vue/test-utils":"^2.3.0","@vitejs/plugin-vue":"^4.0.0","@vitejs/plugin-vue-jsx":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_19.0.2-beta.3_1680639864830_0.23485102672913571","host":"s3://npm-registry-packages"}},"20.0.0":{"name":"@bloomreach/vue3-sdk","version":"20.0.0","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@20.0.0","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"e1e1a3b20a398f746b6feb45f7ad40c37660b8c6","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-20.0.0.tgz","fileCount":8,"integrity":"sha512-zAKXwGgBWBX6H7hmi+PjrGx4ebcMmoZtcuRqW+hFxOItHZhStq7yXpf9n4cvYK+JNxl3hP7kGuL3ZxtLOzxP9A==","signatures":[{"sig":"MEUCIBIdPRtEsUo6u9RdGx7lcfy1WThouWWuuOp1whncwnoyAiEApWdl42IE2FnGQLqkOqVlNoSPDWcf+Dh82HFR/yL/6SU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113019,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkL1FrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqtVg//UpHTOd69FXNR+I0SIuESPt+OtET+wErr3IkjTP2R7zMm86Fr\r\nEB+XxpcP8pxjTk0bBQEmlPx40xNDeX/YnNjTR81ALIsns68TfYG+Y7MGWiHc\r\nr5CPe0S1wpzRiwXwC8/y0CvRF4zeRUL4IfyQh8gjXUsmDlJM/PRbSE3vtymE\r\nbjvV47l0cfBcKNne+T8nFvqS2jIkF/ansFsSh7weIhmWqxWpbogdnEdxaJ5v\r\nJAWGX9NiRy07TPYCU79qRBRe8UBIaYWTWqrUijlhakbcMVH9VulWQq5GoPGp\r\nwRTC0ZrkBKOAuqIVc6nEPkqzsmyGcT7VpPL0aPzs2UZ5G9tWzkhweDQVTwed\r\nkPE66fJy0cLxnPGzlyKNlZ2g+6zDJcqJtnAYeG94jcLmU9WalxAB7nPTzqBP\r\niCvdokzloxS/lMNDQ2EHwFHiO5zu9edrzyYkW/v0VuEPcDi+b65ScNG6SpGf\r\neH10x7ri3WmXkaBd8GPIbo2KElxPHETaHDTZjAgIaF5hdeSaeAB+RuEDB2ow\r\nCYVQfM4fOLzMDBhePGfqSrWZlLAO+UVvsXQbBtRBD+0eiRWFUOr/9B8QXTWP\r\nCBhExPnjW1tuw4Xtn1EMmGvmArjDd2yvExCzAOPx+VIIIozzrMnHP3scU05X\r\np0A+FPbD99xTtVgjWVM9kr3SSuSfL9WMXYc=\r\n=tCbF\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"e253082582192b5b784be005a1d27e53ef16002e","scripts":{"dev":"vite build --watch","test":"vitest","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/1.14.2/node@v16.20.0+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"20.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.0","vitest":"^0.29.1","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@types/jsdom":"^21.1.0","@vue/tsconfig":"^0.1.3","@vue/test-utils":"^2.3.0","@vitejs/plugin-vue":"^4.0.0","@vitejs/plugin-vue-jsx":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_20.0.0_1680822635112_0.2170204294419198","host":"s3://npm-registry-packages"}},"21.0.0-alpha.0":{"name":"@bloomreach/vue3-sdk","version":"21.0.0-alpha.0","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@21.0.0-alpha.0","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"a5644315645095c2e0daba3b10599d0e3e8b2fa7","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-21.0.0-alpha.0.tgz","fileCount":8,"integrity":"sha512-f4nmKa/JV7Fy94ODhKpm9cSae1As8kx0LxpZFsq+pHLlF9qoLQquL9vnvLs+kcgnHpnhTGp29Aao66DvkI4AbQ==","signatures":[{"sig":"MEQCIGX022DiSWYv+3m3elmslOoD32T0SwbqZ4OSV6KjNVFhAiA4EgAGwloe+ga90Vpmz+7ZZtNLj+Beb7bCK8CgW3M3/Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113338,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSNsVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo3Qg//fNkHrYCH40o/F4S22k7JtvpyO2YD03EAcaeA1QaJ/2eR1lVN\r\nBzjLnXGuC8zuPF5E2IGPdzz7t4qVimdupzSzhe/j953pmdM2KMPZtyyxIiqy\r\nR62ZCNBdBz0J7aZouMiRAm3953kSINCZ/Tr+kMX/lYQ3NlhbVfq7yMJcjz8l\r\n8VNErw+fzRdQiQ4l6heDTT3+8QEHX7PXNmqvcAe8p7Iz0/usUuX9PkCYIkEZ\r\nEjW9VkpYivSaRlz1vh7RbfGoKgb3n5uBgm7bt1viCZqsNKOm5qfPRvditkpx\r\nZ72Jgu12sJviz3aoDxCmUWR9zGLJv9BlkYSKNokW8zkbEUR2tXSUHPcyjZ5f\r\nEMByOy4VPi6CfmTP6WpY3ZRZvBMU7d8HqFMePCVgY3eL0H6K7PgebcGijgcZ\r\n59tzzdH0Iqlj7vw7ujBiJDN5El25RSWsLp/ek8sauJ/rzMQKw7IJC20YfjHq\r\nsgfFnfUUCaHSBbtx87eazroWVRW+8T3ZOG9NFlw8xE4nIn0cDs3m/dmqyb9i\r\n1UTGu9Hhtmz+y73slSENx0E3tIVRaC8ezk2NqgTEZHm+Gm6Ldyy41RsJzTmM\r\nyTSyiOgF85Vj8b1XZbFN1w+FWOec5AGHoAeBvKu4Z/3pS2PjlOrOthqM4gvm\r\nT6LIQyHL85z47QXYhhcAOk15gBi/QaDSP+4=\r\n=Gttd\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"3839e8e31b3fd231e96a8d98bae2e359c93f0fef","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/1.14.2/node@v16.20.0+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"21.0.0-alpha.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.0","vitest":"^0.29.1","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@types/jsdom":"^21.1.0","@vue/tsconfig":"^0.1.3","@vue/test-utils":"^2.3.0","@vitejs/plugin-vue":"^4.0.0","@vitejs/plugin-vue-jsx":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_21.0.0-alpha.0_1682496277462_0.9100621258923556","host":"s3://npm-registry-packages"}},"21.0.0":{"name":"@bloomreach/vue3-sdk","version":"21.0.0","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@21.0.0","maintainers":[{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"345cd0d6c83bf8a8f35bd220b6cd3bc1227cb086","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-21.0.0.tgz","fileCount":8,"integrity":"sha512-LjfTAbDFDaavEuiuNQ/i51wGRZcCKsPy5guccreICs/+VXyae28ZnWwydG1ug32wt5rWrbbRiJD2vX51O0S9iQ==","signatures":[{"sig":"MEYCIQDl1giBvrvgrkAMSUR8KWiLF3FdAsRn3P3oZHD7VbDwmAIhAKJgdFKyrcSHOPc0jIUPrVgeg3/W8VsjguzBLOk55P4a","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113322,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkSeoeACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqajA//U1F0w8ERY2XfvFTjhxiBTvUPNqwBM4IsgYs4MMvzRQhQzqJG\r\nKuNAe2q0nGnXznJsIu5fi3DvBzKz48qSH5b859S+O9/+cs+25FyqCbFU/NIt\r\n+XYxd1pjEyC/JMWjnA9+KQTiaTcu6L80zaktKg5a9si+fxkyqnjYjiBp90vn\r\nPLs7BHbN6g7BqA/59Il4s4bbmWWpqBLM1BC2IZN8mpSt2NsWeD5BpGUz8PbW\r\nCnUeHnapWwY/BPDCJuUdj0z1XtQo478RxJB7O8FUP/n5FxYtggc1V/qcy73c\r\nqo3Tdm3o+iNSqmuDcPHJPLx9GcyW1vttZyLhtj7rJDAslANCnNjYXcDQ3Mr9\r\nreArm6D98OAA9bDh9Xw08lYsaE4OprMnqlu2UL3GtfaqM2oLw8RhAJwo/RLT\r\nHwS3bqaqZNy+JYyp5xTRfDWmM8PJxiTj2PUG+aRUntE4fxwZwpBhb6eaWK5Y\r\nil4hYzbs33b1TedFcRTRmidTFFrIsKMa65myEqX1mR5xbht6+mGmGvPksu9E\r\nk3D9k+W+0VoBDm+EfYcIae0QyyAHTvYdZXzIWE1jSvuoZveoHAYkaHxWTcTW\r\nFnX2HDtfHV2QlBh6/tiTBE1tZSgugha7f+YqXffde8YpMwI3v9PgpTRDMmGe\r\nGeI4thY5BPkaGPYsA850WTwvvbwFlBMZAH0=\r\n=cL00\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"9d2c360ffcb2bcd5e8bcaed576d0f4ca9a4bbc18","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/1.14.2/node@v16.20.0+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.0","dependencies":{"vue":"^3.2.45","@bloomreach/spa-sdk":"21.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^4.0.0","vitest":"^0.29.1","vue-tsc":"^1.0.12","typescript":"~4.7.4","@types/node":"^18.11.12","npm-run-all":"^4.1.5","@types/jsdom":"^21.1.0","@vue/tsconfig":"^0.1.3","@vue/test-utils":"^2.3.0","@vitejs/plugin-vue":"^4.0.0","@vitejs/plugin-vue-jsx":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_21.0.0_1682565662346_0.10565937522296487","host":"s3://npm-registry-packages"}},"22.0.0":{"name":"@bloomreach/vue3-sdk","version":"22.0.0","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.0","maintainers":[{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"edbe472b8d9d88d2579b6820671c0fc62ed7e710","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.0.tgz","fileCount":8,"integrity":"sha512-d8R2HjgHcrb95bAsIqmxdTt5r69EYwunX7P+pBa1FNztrIHy6uwYyKP8988BJRCLoYn2m26s3+aViKd/W1P7tQ==","signatures":[{"sig":"MEQCIAO9usC7PVoAnLdJTCFRiWevRx9jkBHDJw2nYIqtBKurAiBMdSdvYrKExqETWQ592gZ5IsRb7I/aJ8hBLIogkdHLCg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113921},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"09a26df9a33eddbde7f7cad608e9983b6af2ce1b","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.1+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.1","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.0_1688002234711_0.4558440100887542","host":"s3://npm-registry-packages"}},"22.0.1":{"name":"@bloomreach/vue3-sdk","version":"22.0.1","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.1","maintainers":[{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"npm_support_shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"f5bfa50f8fa05ac7360541a11d5070c64329be63","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.1.tgz","fileCount":8,"integrity":"sha512-fsGIHBQK27sr5EA+Y4Hgd4GD3xijphBEoRyS8FQsyR9OStX1WgJ/Gvjo5RlDdoI5JuGR9GSGcJiUK1ySZKR4JA==","signatures":[{"sig":"MEQCIASMO2dEdKwEtrZHzbBqDhbQVLx2xzSwQn1YLYrKWA+FAiB66pGh5ZUlFF1bvdalTNBrqUTNX0xrGfBTEoGZ6YmHdg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113921},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"4c965096e795ec00f5c7bbe72bd4f246d77edb3a","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.2+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.1_1692558306903_0.6853232460289465","host":"s3://npm-registry-packages"}},"22.0.2":{"name":"@bloomreach/vue3-sdk","version":"22.0.2","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.2","maintainers":[{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"firat-br","email":"firat.kucuk@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"ayushi.upmanyu","email":"ayushi.upmanyu@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"shekhar.kumar","email":"shekhar.kumar@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"adesousa","email":"antonio.desousa@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"shiva.dharavath","email":"npm_support_shiva.dharavath@bloomreach.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"f88e6c72fab9d643ea42723c6f3def7b5e0c46fa","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.2.tgz","fileCount":8,"integrity":"sha512-R/ccpseJbNOJEEnaVrKEwOddFqos7wplRdURvzAJpdcKeTTzk75tSb80+WTw5kor4NgxaCcnqfbXaxEzQ0W0Wg==","signatures":[{"sig":"MEUCIQCafSwpCcpcaJ9pXWmNVFr4st+HbUX5jjxY9PKmoYO1fQIgNAQtqm+ckccSbHFhPEO80lyDzevDinpX/AP+wrjU36o=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":113921},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":"./dist/index.js","require":"./dist/index.umd.cjs"}},"gitHead":"4436a89797c72c1f5085c9ead3bef9c0e8d67b75","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.2+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.2_1692566365555_0.041029749751861244","host":"s3://npm-registry-packages"}},"22.0.3":{"name":"@bloomreach/vue3-sdk","version":"22.0.3","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.3","maintainers":[{"name":"prateek.pandey","email":"prateek.pandey@bloomreach.com"},{"name":"shivanayak.dharavath2","email":"shiva.dharavath@bloomreach.com"},{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"ajay-bloomreach","email":"ajay.chandravadiya@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"stefmz","email":"stefanos.maziotis@bloomreach.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"e42e5be23d6c5361a1acb74ab9fff1ca9eb490c6","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.3.tgz","fileCount":8,"integrity":"sha512-xBqJXlSuqw5kDwaNNM+5EMvllzJJ5WohiyK0PwHdMjeBpfzvzBB14lowmpPjs4K4vp6cNWRwyapDXq9+DsGXFQ==","signatures":[{"sig":"MEYCIQCIkOjYY7FoYnA+m213nxKKZaniIRzPRramEayOPwBX+wIhAOYOvJ4stM2ChoUfdvYBCMvi6j6XOvwMEQ+bK9NI2itR","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114049},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./typings.d.ts","default":"./dist/index.js"},"require":{"types":"./typings.d.ts","default":"./dist/index.umd.cjs"}}},"gitHead":"21a44f48750ad4f66ef18d918aef6d8f74b89924","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.2+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.3_1707846595772_0.03414115558889241","host":"s3://npm-registry-packages"}},"22.0.4":{"name":"@bloomreach/vue3-sdk","version":"22.0.4","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.4","maintainers":[{"name":"stefanos.maziotis","email":"stefanos@bloomreach.com"},{"name":"prateek.pandey","email":"prateek.pandey@bloomreach.com"},{"name":"shivanayak.dharavath2","email":"shiva.dharavath@bloomreach.com"},{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"926128517c828ec03ee7eeb500ab2ad8ac11287c","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.4.tgz","fileCount":8,"integrity":"sha512-RmvlKH+p9u0uWqXHvYba2H982CP1iMUn/+kYIu9vweUdJmIw/K1iR3pnBIhQ5YzCtW8IsDXXesrhEY29gps38g==","signatures":[{"sig":"MEUCIAvgBoFq+upaxVnMAtTUlkydatANkCgtmQ+XG5mflNAVAiEAzEE4bigUj3GB3KGSVrdRiIfWvrFNYvF/a8P5lh0P+tA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114049},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./typings.d.ts","default":"./dist/index.js"},"require":{"types":"./typings.d.ts","default":"./dist/index.umd.cjs"}}},"gitHead":"27f2e442aac54494b19b621593d45904a07ce0b6","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.2+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.4_1712209156029_0.2512596970240668","host":"s3://npm-registry-packages"}},"22.0.5":{"name":"@bloomreach/vue3-sdk","version":"22.0.5","keywords":["bloomreach","sdk","vue"],"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","_id":"@bloomreach/vue3-sdk@22.0.5","maintainers":[{"name":"stefanos.maziotis","email":"stefanos@bloomreach.com"},{"name":"prateek.pandey","email":"prateek.pandey@bloomreach.com"},{"name":"shivanayak.dharavath2","email":"shiva.dharavath@bloomreach.com"},{"name":"feix-bloomreach","email":"feix@bloomreach.com"},{"name":"jeroenhoffman","email":"jeroen.hoffman@bloomreach.com"},{"name":"skuzey-br","email":"sami.kuzey@bloomreach.com"},{"name":"aakash.anand","email":"aakash.anand@bloomreach.com"},{"name":"rameshbr","email":"rameshkumar.arumugam@bloomreach.com"},{"name":"boudekerk","email":"bartosz.oudekerk@bloomreach.com"},{"name":"mgiusto","email":"matteo.giusto@bloomreach.com"},{"name":"beetlerom","email":"beetlerom@gmail.com"},{"name":"joerideg","email":"joerideg@gmail.com"},{"name":"abogaart","email":"arthur.bogaart@bloomreach.com"},{"name":"pcentgraf-bloomreach","email":"peter.centgraf@bloomreach.com"},{"name":"mjmetter","email":"michael.metternich@bloomreach.com"},{"name":"michielrop","email":"michiel.rop@bloomreach.com"},{"name":"sshepelevich","email":"sergey.shepelevich@bloomreach.com"},{"name":"vlets","email":"georgevle93@gmail.com"},{"name":"pauledwardsbloomreach","email":"paul.edwards@bloomreach.com"},{"name":"davidboyd1","email":"david@davidboyd.com"},{"name":"br-mikedreynolds","email":"michael.reynolds@bloomreach.com"},{"name":"tom.washek","email":"tom.washek@bloomreach.com"},{"name":"drq","email":"drq@nxfinc.com"},{"name":"ricardomartins","email":"ricardo.martins@bloomreach.com"},{"name":"ntrajkovski","email":"nikola.trajkovski@bloomreach.com"},{"name":"bcanvural","email":"bcanvural@gmail.com"},{"name":"lachire","email":"charlie.chen@bloomreach.com"},{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},{"name":"glm-bloomreach","email":"giacomo.lamonaco@bloomreach.com"},{"name":"vaibhav.shukla","email":"vaibhav.shukla@bloomreach.com"},{"name":"hachok","email":"d.gachok@gmail.com"},{"name":"vkauryha","email":"vasili.kauryha@bloomreach.com"}],"homepage":"https://www.bloomreach.com","bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"dist":{"shasum":"8fdda98abcc202c31f3051b291ba918e86cf3146","tarball":"https://registry.npmjs.org/@bloomreach/vue3-sdk/-/vue3-sdk-22.0.5.tgz","fileCount":8,"integrity":"sha512-drxVk2udKkqjV8GcAzyglIIofXOv3yR1lRE+0w9HQGrYO1GRKaLPaovfWsCRoaqlbgcyaLiph9MX/RTdABXrfg==","signatures":[{"sig":"MEUCIDjTkce0RRLOtXnsWclNkHh/aoxI8nabTV9iJauzfXJBAiEAuWFF98ZebR69istRixNz3vrwq2ZmSjZu/IGFc23QcQ4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":114049},"main":"./dist/index.umd.cjs","type":"module","types":"typings.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./typings.d.ts","default":"./dist/index.js"},"require":{"types":"./typings.d.ts","default":"./dist/index.umd.cjs"}}},"gitHead":"b6bfe2a417ff78e032899e5037df172c09992631","scripts":{"dev":"vite build --watch","test":"vitest --watch=false","build":"run-p type-check build-only","preview":"vite preview","yalcAdd":"yalc add @bloomreach/spa-sdk","yalcPush":"yalc push --replace --no-scripts","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json --composite false","yalcRestore":"yalc restore --all","yalcRetreat":"yalc retreat --all","type-check:tests":"vue-tsc --noEmit -p tsconfig.vitest.json --composite false","type-check:watch":"npm run type-check -- --watch"},"_npmUser":{"name":"brxm","email":"XM-Frontend-Chapter@bloomreach.com"},"deprecated":"The package is no longer supported. Use @bloomreach/vue-sdk@23.0.0 and higher for Vue3","repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"_npmVersion":"lerna/2.4.0/node@v16.20.2+x64 (linux)","description":"Bloomreach SPA SDK for Vue 3","directories":{},"_nodeVersion":"16.20.2","_hasShrinkwrap":false,"devDependencies":{"vue":"3.3.4","vite":"4.3.8","yalc":"1.0.0-pre.53","vitest":"0.29.8","vue-tsc":"1.6.5","typescript":"4.7.4","@types/node":"18.16.14","npm-run-all":"4.1.5","@types/jsdom":"21.1.1","@vue/tsconfig":"0.1.3","@vue/test-utils":"2.4.0-alpha.1","@vitejs/plugin-vue":"4.2.3","@vitejs/plugin-vue-jsx":"3.0.1"},"peerDependencies":{"vue":"^3.2.45"},"_npmOperationalInternal":{"tmp":"tmp/vue3-sdk_22.0.5_1713863348711_0.6550807005980033","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-03-09T05:30:53.757Z","modified":"2026-09-04T10:07:45.202Z","19.0.2":"2023-03-09T05:30:53.950Z","19.0.2-beta.1":"2023-03-09T05:32:35.709Z","19.0.2-beta.2":"2023-03-09T05:35:51.210Z","19.0.2-beta.3":"2023-04-04T20:24:24.979Z","20.0.0":"2023-04-06T23:10:35.302Z","21.0.0-alpha.0":"2023-04-26T08:04:37.686Z","21.0.0":"2023-04-27T03:21:02.531Z","22.0.0":"2023-06-29T01:30:34.925Z","22.0.1":"2023-08-20T19:05:07.132Z","22.0.2":"2023-08-20T21:19:25.795Z","22.0.3":"2024-02-13T17:49:56.006Z","22.0.4":"2024-04-04T05:39:16.213Z","22.0.5":"2024-04-23T09:09:08.884Z"},"bugs":{"url":"https://issues.onehippo.com/projects/SPASDK/issues"},"author":{"name":"Bloomreach B.V."},"license":"Apache-2.0","homepage":"https://www.bloomreach.com","keywords":["bloomreach","sdk","vue"],"repository":{"url":"git+https://github.com/bloomreach/spa-sdk.git","type":"git","directory":"packages/vue3-sdk"},"description":"Bloomreach SPA SDK for Vue 3","maintainers":[{"email":"beetlerom@gmail.com","name":"beetlerom"},{"email":"joeri.degooijer@bloomreach.com","name":"joerideg"},{"email":"arthur.bogaart@bloomreach.com","name":"abogaart"},{"email":"rishabh.chhabda@bloomreach.com","name":"rishabh.chhabda"},{"email":"rameshkumar.arumugam@bloomreach.com","name":"rameshbr"},{"email":"peter.centgraf@bloomreach.com","name":"pcentgraf-bloomreach"},{"email":"georgevle93@gmail.com","name":"vlets"},{"email":"paul.edwards@bloomreach.com","name":"pauledwardsbloomreach"},{"email":"david@davidboyd.com","name":"davidboyd1"},{"email":"drq@nxfinc.com","name":"drq"},{"email":"nikola.trajkovski@bloomreach.com","name":"ntrajkovski"},{"email":"bcanvural@gmail.com","name":"bcanvural"},{"email":"charlie.chen@bloomreach.com","name":"lachire"},{"email":"giacomo.lamonaco@bloomreach.com","name":"glm-bloomreach"},{"email":"matteo.giusto@bloomreach.com","name":"mgiusto"},{"email":"bartosz.oudekerk@bloomreach.com","name":"boudekerk"},{"email":"aakash.anand@bloomreach.com","name":"aakash.anand"},{"email":"prateek.pandey@bloomreach.com","name":"prateek.pandey"},{"email":"jeroen.hoffman@bloomreach.com","name":"jeroenhoffman"},{"email":"vahid.mehrjouei@bloomreach.com","name":"vahid.mehrjouei"},{"email":"wenjun.li@bloomreach.com","name":"wenjun.li"},{"email":"shiva.dharavath@bloomreach.com","name":"shivanayak.dharavath2"}],"readme":"# Bloomreach Vue 3 SDK\n\nBloomreach Vue 3 SDK provides simplified headless integration with [Bloomreach Content](https://www.bloomreach.com/en/products/content)\nfor Vue-based applications. This library interacts with the [Page Model API](https://documentation.bloomreach.com/api-reference/content/delivery/page-delivery-api/page-delivery-api.html)\nand [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk) and\nexposes a simplified declarative Vue.js interface over the Page Model.\n\n## Features\n\n- Bloomreach Page Vue component;\n- Bloomreach Components Vue component;\n- Manage Content Button;\n- Manage Menu Button;\n\n## Get Started\n\n### Installation\n\nTo get the SDK into your project with [NPM](https://docs.npmjs.com/cli/npm):\n\n```bash\nnpm install @bloomreach/vue3-sdk\n```\n\nAnd with [Yarn](https://yarnpkg.com):\n\n```bash\nyarn add @bloomreach/vue3-sdk\n```\n\n### Usage\n\nThe following code snippets render a simple page with a\n[Banner](https://documentation.bloomreach.com/library/setup/hst-components/overview.html)\ncomponent.\n\n#### `src/main.ts`\n\nIn the app's entry file, it needs to import and\n[install](https://vuejs.org/guide/reusability/plugins.html) the `BrSdk`\nplugin to make the SDK components available globally.\n\n```typescript\nimport { createApp } from 'vue'\nimport { BrSdk } from '@bloomreach/vue3-sdk';\n\nconst app = createApp(/*... */);\napp.use(BrSdk);\n\n/*... */\n```\n\n#### `src/App.vue`\n\nIn the `App` component, it needs to pass the configuration and Bloomreach Content components\nmapping into the `br-page` component inputs.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template v-slot=\"props\">\n      <header>\n        <a :href=\"props.page.getUrl('/')\">Home</a>\n        <br-component component=\"menu\" />\n      </header>\n      <section>\n        <br-component component=\"main\" />\n      </section>\n      <footer>\n        <br-component component=\"footer\" />\n      </footer>\n    </template>\n  </br-page>\n</template>\n\n<script lang=\"ts\" setup>\n  import Banner from './components/Banner.vue';\n  \n  const configuration = {\n    /* ... */\n  };\n  const mapping = { Banner };\n</script>\n```\n\n#### `src/components/Banner.vue`\n\nFinally, in the `Banner` component, it can consume the component data via the\n`component` prop.\n\n```html\n<template>\n  <div>Banner: {{ component.getName() }}</div>\n</template>\n\n<script lang=\"ts\" setup>\n  import { toRefs } from 'vue';\n  \n  const props = defineProps<{ component: Component }>();\n  const { component } = toRefs(props);\n</script>\n```\n\n### Non-blocking render mode (NBRMode)\n\nNon-blocking rendering mode can be used to decrease the time for your application to load fully on the client side. By\ndefault the NBRMode configuration is `false` to avoid breaking existing setups. Setting it to `true` will enable\nnon-blocking render mode. When the mode is active the children of the BrPage component will start mounting while the\nPage Model is being fetched. These children might contain logic themselves that queries some external API and using\nnon-blocking render mode would allow this to be executed in parallel to requesting the Page Model.\n\n```html\n<!-- MyComponent.vue -->\n<template>\n  Hello\n</template>\n\n<script lang=\"ts\" setup>\n  import { onMounted } from 'vue';\n  \n  onMounted(async () => {\n    // This will run in parallel to fetching the Page Model from the Delivery API\n    await fetch('https://yourapi.com');\n  });\n</script>\n```\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <my-component></my-component>\n    <template v-slot:default=\"props\">\n      ...\n  </br-page>\n</template>\n\n<script lang=\"ts\" setup>\n  const configuration = {\n    NBRMode: true,\n    /* ... */\n  };\n  const mapping = {/* ... */};\n</script>\n```\n### Configuration\n\nThe `br-page` component supports several options you may use to customize page\ninitialization. These options will be passed to the `initialize` function from\n[`@bloomreach/spa-sdk`](https://www.npmjs.com/package/@bloomreach/spa-sdk). See\n[here](https://bloomreach.github.io/spa-sdk/modules/index.html#Configuration) for the\nfull configuration documentation in the SPA SDK Typedocs.\n\n### Mapping\n\nThe `br-page` component provides a way to link Vue components with the Bloomreach Content\nones. It requires to pass the `mapping` property that maps the component type\nwith its representation.\n\nThe [Container Items](https://bloomreach.github.io/spa-sdk/interfaces/index.ContainerItem.html) can be\nmapped by their labels.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script lang=\"ts\" setup>\n  import NewsList from './components/NewsList.vue';\n  \n  const configuration = {\n    /* ... */\n  };\n  const mapping = { 'News List': NewsList };\n</script>\n```\n\nThe [Containers](https://bloomreach.github.io/spa-sdk/interfaces/index.ContainerItem.html)\ncan be only mapped by their [type](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html),\nso you need to use [constants](https://bloomreach.github.io/spa-sdk/modules/index.html#TYPE_CONTAINER_BOX) from\n[`@bloomreach/spa-sdk`](www.npmjs.com/package/@bloomreach/spa-sdk). By default,\nthe Vue 3 SDK provides an implementation for all the container types as it is\ndefined in the [documentation](https://documentation.bloomreach.com/library/concepts/template-composer/channel-editor-containers.html).\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script lang=\"ts\" setup>\n  import { TYPE_CONTAINER_INLINE } from '@bloomreach/spa-sdk';\n  import InlineContainer from './components/InlineContainer.vue';\n  \n  const configuration = {\n    /* ... */\n  };\n  const mapping = { [TYPE_CONTAINER_INLINE]: InlineContainer };\n</script>\n```\n\nFrom within the Container component, the Container Items can be accessed via the\n`getChildren` method. This can be used to reorder or wrap child elements.\n\n```html\n<template>\n  <div>\n    <span v-for=\"(child, key) in component.getChildren()\" :key=\"key\">\n      <br-component :component=\"child\" />\n    </span>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\n  import { toRefs } from 'vue';\n  \n  const props = defineProps<{ component: Component }>();\n  const { component } = toRefs(props);\n</script>\n```\n\nThe [Components](https://bloomreach.github.io/spa-sdk/interfaces/index.Component.html)\ncan be mapped by their names. It is useful for a menu component mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script lang=\"ts\" setup>\n  import Menu from './components/Menu.vue';\n\n  const configuration = {\n    /* ... */\n  };\n  const mapping = { menu: Menu };\n</script>\n```\n\nBy default, container items that are not mapped will be rendered as a warning\ntext. There is an option to override the fallback.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\" />\n</template>\n\n<script lang=\"ts\" setup>\n  import { TYPE_CONTAINER_ITEM_UNDEFINED } from '@bloomreach/spa-sdk';\n  import Fallback from './components/Fallback.vue';\n\n  const configuration = {\n    /* ... */\n  };\n  const mapping = { [TYPE_CONTAINER_ITEM_UNDEFINED]: Fallback };\n</script>\n```\n\n### Inline Mapping\n\nThere is also another way to render a component. In case you need to show a\nstatic component or a component from the abstract page, you can use inline\ncomponent mapping.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <Menu :component=\"component\" :page=\"page\" />\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script>\n  import Menu from './components/Menu.vue';\n  \n  const configuration = {\n    /* ... */\n  };\n  const mapping = {\n    /* ... */\n  };\n</script>\n```\n\nIn a component it is also possible to point where the component's children are\ngoing to be placed.\n\n```html\n\n<template>\n  <div>\n    @copy; Bloomreach\n    <br-component/>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\n  import { Component } from '@bloomreach/spa-sdk';\n  import { toRefs } from 'vue';\n  \n  const props = defineProps < { component: Component } > ();\n  const { component } = toRefs(props);\n</script>\n```\n\nThe component data in case of inline mapping can be accessed via the template\ncontext.\n\n```html\n<template>\n  <br-page :configuration=\"configuration\" :mapping=\"mapping\">\n    <template>\n      <br-component component=\"menu\">\n        <template v-slot:default=\"{ component, page }\">\n          <ul>\n            <li><a :href=\"page.getUrl('/')\">Home</a></li>\n            <li v-for=\"(item, key) in component.getModels()\" :key=\"key\">...</li>\n          </ul>\n        </template>\n      </br-component>\n    </template>\n  </br-page>\n</template>\n\n<script lang=\"ts\" setup>\n  const configuration = {\n    /* ... */\n  };\n  const mapping = {\n    /* ... */\n  };\n</script>\n```\n\n### Buttons\n\nIt is recommended to add the css style `position: relative` to the Buttons\nso they will position correctly within their parent container component.\n\nManage menu button can be placed inside a menu component using\n`br-manage-menu-button` component.\n\n```html\n<template>\n  <ul v-if=\"menu\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-menu-button :menu=\"menu\" />\n  </ul>\n</template>\n\n<script lang=\"ts\" setup>\n  import { toRefs, computed } from 'vue';\n  import { Menu, Reference, Component, Page } from '@bloomreach/spa-sdk';\n\n  interface MenuModels {\n    menu: Reference;\n  }\n  \n  const props = defineProps<{ component: Component; page: Page }>();\n  const { component, page } = toRefs(props);\n  const menu = computed(() => {\n    const { menu: menuRef } = component.value.getModels<MenuModels>();\n    return menuRef && page.value.getContent<Menu>(menuRef);\n  });\n</script>\n```\n\nManage content button can be placed inside a component using\n`br-manage-content-button` component with non-empty `content` property.\n\n```html\n<template>\n  <div v-if=\"document\" :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      :content=\"document\"\n      document-template-query=\"new-banner-document\"\n      folder-template-query=\"new-banner-folder\"\n      parameter=\"document\"\n      root=\"banners\"\n      :relative=\"true\"\n    />\n  </div>\n</template>\n\n<script>\n  import { toRefs, computed } from 'vue';\n  import { Document, Reference, Page, Component } from '@bloomreach/spa-sdk';\n\n  interface BannerModels {\n    document: Reference;\n  }\n  \n  const props = defineProps<{ component: Component; page: Page }>();\n  const { component, page } = toRefs(props);\n  \n  const document = computed(() => {\n    const { document: documentRef } = component.value.getModels<BannerModels>();\n    return documentRef && page.value.getContent<Document>(documentRef);\n  });\n</script>\n```\n\nAdd new content button can be placed inside a component using\n`br-manage-content-button` directive but without passing a content entity.\n\n```html\n<template>\n  <div :class=\"{ 'has-edit-button': page.isPreview() }\">\n    <!-- ... -->\n\n    <br-manage-content-button\n      document-template-query=\"new-news-document\"\n      folder-template-query=\"new-news-folder\"\n      root=\"news\"\n    />\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\n  import { Component, Page } from '@bloomreach/spa-sdk';\n  \n  const props = defineProps<{ component: Component, page: Page }>();\n  const { component, page } = toRefs(props);\n</script>\n```\n\n## License\n\nPublished under [Apache 2.0](http://www.apache.org/licenses/LICENSE-2.0)\nlicense.\n\n## Reference\n\nThe Vue 3 SDK is using [Bloomreach SPA SDK](https://www.npmjs.com/package/@bloomreach/spa-sdk) to interact\nwith Bloomreach Content.\n\n### br-page\n\nThis is the entry point to the page model. This component requests and\ninitializes the page model, and then renders the page root component\nrecursively.\n\n| Property        | Required | Description                                                                                                                                  |\n| --------------- | :------: | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `configuration` |  _yes_   | The [configuration](#configuration) of the SPA SDK.                                                                                          |\n| `mapping`       |  _yes_   | The brXM and Vue.js components [mapping](#mapping).                                                                                          |\n| `page`          |   _no_   | Preinitialized page instance or prefetched page model. Mostly that should be used to transfer state from the server-side to the client-side. |\n\nThis component also supports a default slot transclusion. `<template>` from the\ncomponent contents will be rendered in the root component context.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The root component.        |\n| `page`      | The current page instance. |\n\n### br-component\n\nThis component points to where children or some component should be placed.\n`br-component` can be used inside `br-page` or mapped components only. If it\ncontains `<template>` in the contents, then the template will be rendered in the\ncontext of every matched component. Otherwise, it will try to render all\nchildren components recursively.\n\n| Property    | Required | Description                                                                                                                                                                                                                     |\n| ----------- | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `component` |   _no_   | The component instance or a path to a component. The path is defined as a slash-separated components name chain relative to the current component (e.g. `main/container`). If it is omitted, all the children will be rendered. |\n\nThe template context holds references to the current component and the current\npage instance.\n\n| Variable    | Description                |\n| ----------- | -------------------------- |\n| `component` | The current component.     |\n| `page`      | The current page instance. |\n\n### br-manage-content-button\n\nThis component places a button on the page that opens the linked content in the\ndocument editor or opens a document editor to create a new one. The button will\nonly be shown in preview mode.\n\n| Property                    | Required | Description                                                                                     |\n| --------------------------- | :------: | ----------------------------------------------------------------------------------------------- |\n| `content`                   |   _no_   | The content entity to open for editing.                                                         |\n| `document-template-query`   |   _no_   | Template query to use for creating new documents. For Content SaaS, the key is like `new-banner-document` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-document` for `accordion` document type in `vuestorefront` namespace. |\n| `folder-template-query`     |   _no_   | Template query to use in case folders specified by `path` do not yet exist and must be created. For Content SaaS, the key is like `new-banner-folder` for `banner` document type. In case the document type is in a namespace other than `brxsaas`, the key also includes namespace prefix, such as `new-vuestorefront-accordion-folder` for `accordion` document type in `vuestorefront` namespace. |\n| `path`                      |   _no_   | Initial location of a new document, relative to the `root`.                                     |\n| `parameter`                 |   _no_   | Name of the component parameter in which the document path is stored.                           |\n| `pickerConfiguration`       |   _no_   | The root path of the CMS configuration to use for the picker, relative to `/hippo:configuration/hippo:frontend/cms`. |\n| `pickerEnableUpload`        |   _no_   | When this picker is used for images, this flag determines if uploads are enabled.               |\n| `pickerInitialPath`         |   _no_   | The initial path to use in the picker if nothing has been selected yet, relative to the pickerRootPath. |\n| `pickerRemembersLastVisited`|   _no_   | Whether the picker remembers the last visited path.                                             |\n| `pickerRootPath`            |   _no_   | The absolute root path to use in the picker, or an empty string if the channel content path is used. |\n| `pickerSelectableNodeTypes` |   _no_   | Types of nodes to be able to select in the picker, separated by a comma.                        |\n| `relative`                  |   _no_   | Flag indicating that the picked value should be stored as a relative path.                      |\n| `root`                      |   _no_   | Path to the root folder of selectable document locations.                                       |\n\n### br-manage-menu-button\n\nThis directive places a button on the page that opens the linked menu in the\nmenu editor. The button will only be shown in preview mode.\n\n| Property | Required | Description             |\n| -------- | :------: | ----------------------- |\n| `menu`   |  _yes_   | The related menu model. |\n","readmeFilename":"README.md"}