@brandlab-digital/site-next 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/analytics.d.ts +2 -0
  2. package/dist/analytics.d.ts.map +1 -1
  3. package/dist/analytics.js +5 -1
  4. package/dist/analytics.js.map +1 -1
  5. package/dist/contact/form-client.d.ts +1 -1
  6. package/dist/contact/form-client.d.ts.map +1 -1
  7. package/dist/contact/form-client.js +1 -1
  8. package/dist/contact/form-client.js.map +1 -1
  9. package/dist/contact/resend.d.ts +25 -3
  10. package/dist/contact/resend.d.ts.map +1 -1
  11. package/dist/contact/resend.js +54 -8
  12. package/dist/contact/resend.js.map +1 -1
  13. package/dist/contact/server.d.ts +11 -1
  14. package/dist/contact/server.d.ts.map +1 -1
  15. package/dist/contact/server.js +50 -2
  16. package/dist/contact/server.js.map +1 -1
  17. package/dist/contact/testing.js +1 -1
  18. package/dist/contact/testing.js.map +1 -1
  19. package/dist/google-reviews-client.d.ts +9 -4
  20. package/dist/google-reviews-client.d.ts.map +1 -1
  21. package/dist/google-reviews-client.js +60 -13
  22. package/dist/google-reviews-client.js.map +1 -1
  23. package/dist/google-reviews-server.d.ts +11 -2
  24. package/dist/google-reviews-server.d.ts.map +1 -1
  25. package/dist/google-reviews-server.js +52 -18
  26. package/dist/google-reviews-server.js.map +1 -1
  27. package/dist/google-tag-plan.d.ts +5 -0
  28. package/dist/google-tag-plan.d.ts.map +1 -1
  29. package/dist/google-tag-plan.js +16 -1
  30. package/dist/google-tag-plan.js.map +1 -1
  31. package/dist/lead-registry.d.ts +2 -0
  32. package/dist/lead-registry.d.ts.map +1 -1
  33. package/dist/lead-registry.js.map +1 -1
  34. package/dist/lead-reporting.d.ts +7 -3
  35. package/dist/lead-reporting.d.ts.map +1 -1
  36. package/dist/lead-reporting.js +5 -2
  37. package/dist/lead-reporting.js.map +1 -1
  38. package/dist/robots.d.ts +4 -2
  39. package/dist/robots.d.ts.map +1 -1
  40. package/dist/robots.js +12 -2
  41. package/dist/robots.js.map +1 -1
  42. package/dist/user-interaction.d.ts +14 -0
  43. package/dist/user-interaction.d.ts.map +1 -0
  44. package/dist/user-interaction.js +53 -0
  45. package/dist/user-interaction.js.map +1 -0
  46. package/package.json +2 -2
package/dist/robots.d.ts CHANGED
@@ -3,7 +3,7 @@ export interface BrandlabRobotsMetadata {
3
3
  rules: Array<{
4
4
  userAgent: string;
5
5
  allow?: string;
6
- disallow?: string;
6
+ disallow?: string | string[];
7
7
  }>;
8
8
  sitemap?: string;
9
9
  }
@@ -15,7 +15,9 @@ export interface BrandlabRobotsMetadata {
15
15
  export declare function isBrandlabIndexableDeployment(deployment: BrandlabDeployment): boolean;
16
16
  /**
17
17
  * `src/app/robots.ts`: `export default createBrandlabRobots(site)`.
18
- * The deployment is resolved when Next renders robots.txt.
18
+ * The deployment is resolved when Next renders robots.txt. Production allows
19
+ * everything but the shared API routes and names the canonical sitemap; every
20
+ * other deployment keeps `Disallow: /`.
19
21
  */
20
22
  export declare function createBrandlabRobots(site: BrandlabSite, options?: {
21
23
  environment?: BrandlabEnvironment;
@@ -1 +1 @@
1
- {"version":3,"file":"robots.d.ts","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAA;AAEzC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,WAG3E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAAO,SAGzB,sBAAsB,CAajD"}
1
+ {"version":3,"file":"robots.d.ts","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAA;AAEzC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC,CAAA;IACjF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAWD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,kBAAkB,WAG3E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,mBAAmB,CAAA;CAAO,SAGzB,sBAAsB,CAajD"}
package/dist/robots.js CHANGED
@@ -1,4 +1,12 @@
1
1
  import { resolveBrandlabDeployment, } from '@brandlab-digital/site-core/site';
2
+ /**
3
+ * The shared API routes crawlers have no use for, kept out of a production
4
+ * robots.txt (from 3.3.0): the contact endpoint, and the live Google reviews route
5
+ * with its `/summary` and `/featured` variants, where every request is a paid Places
6
+ * lookup. A robots.txt path is a prefix, so each covers its subpaths. Only these:
7
+ * not a blanket `/api/`, because a site may serve something public there.
8
+ */
9
+ const SHARED_API_DISALLOW = ['/api/contact', '/api/google-reviews'];
2
10
  /**
3
11
  * Crawlers may index any production build except a Vercel Preview: the real
4
12
  * production deployment and a local `next start`. `next dev` and every
@@ -10,7 +18,9 @@ export function isBrandlabIndexableDeployment(deployment) {
10
18
  }
11
19
  /**
12
20
  * `src/app/robots.ts`: `export default createBrandlabRobots(site)`.
13
- * The deployment is resolved when Next renders robots.txt.
21
+ * The deployment is resolved when Next renders robots.txt. Production allows
22
+ * everything but the shared API routes and names the canonical sitemap; every
23
+ * other deployment keeps `Disallow: /`.
14
24
  */
15
25
  export function createBrandlabRobots(site, options = {}) {
16
26
  const sitemap = `${site.canonicalUrl}/sitemap.xml`;
@@ -23,7 +33,7 @@ export function createBrandlabRobots(site, options = {}) {
23
33
  // by Google and Bing; canonical-host consolidation is owned by permanent
24
34
  // redirects and canonical URLs.
25
35
  return {
26
- rules: [{ userAgent: '*', allow: '/' }],
36
+ rules: [{ userAgent: '*', allow: '/', disallow: [...SHARED_API_DISALLOW] }],
27
37
  sitemap,
28
38
  };
29
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAI1B,MAAM,kCAAkC,CAAA;AAOzC;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAA8B;IAC1E,OAAO,UAAU,CAAC,WAAW,KAAK,YAAY;QAC5C,CAAC,UAAU,CAAC,WAAW,KAAK,aAAa,IAAI,UAAU,CAAC,eAAe,CAAC,CAAA;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,UAAiD,EAAE;IAEnD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,YAAY,cAAc,CAAA;IAClD,OAAO,SAAS,MAAM;QACpB,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;QAChF,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,gCAAgC;QAChC,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACvC,OAAO;SACR,CAAA;IACH,CAAC,CAAA;AACH,CAAC","sourcesContent":["import {\n resolveBrandlabDeployment,\n type BrandlabDeployment,\n type BrandlabEnvironment,\n type BrandlabSite,\n} from '@brandlab-digital/site-core/site'\n\nexport interface BrandlabRobotsMetadata {\n rules: Array<{ userAgent: string; allow?: string; disallow?: string }>\n sitemap?: string\n}\n\n/**\n * Crawlers may index any production build except a Vercel Preview: the real\n * production deployment and a local `next start`. `next dev` and every\n * Preview are closed. There is no environment override.\n */\nexport function isBrandlabIndexableDeployment(deployment: BrandlabDeployment) {\n return deployment.environment === 'production' ||\n (deployment.environment === 'development' && deployment.productionBuild)\n}\n\n/**\n * `src/app/robots.ts`: `export default createBrandlabRobots(site)`.\n * The deployment is resolved when Next renders robots.txt.\n */\nexport function createBrandlabRobots(\n site: BrandlabSite,\n options: { environment?: BrandlabEnvironment } = {},\n) {\n const sitemap = `${site.canonicalUrl}/sitemap.xml`\n return function robots(): BrandlabRobotsMetadata {\n const deployment = resolveBrandlabDeployment(options.environment ?? process.env)\n if (!isBrandlabIndexableDeployment(deployment)) {\n return { rules: [{ userAgent: '*', disallow: '/' }] }\n }\n // No `host` directive: it is a non-standard robots.txt extension ignored\n // by Google and Bing; canonical-host consolidation is owned by permanent\n // redirects and canonical URLs.\n return {\n rules: [{ userAgent: '*', allow: '/' }],\n sitemap,\n }\n }\n}\n"]}
1
+ {"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,GAI1B,MAAM,kCAAkC,CAAA;AAOzC;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAA;AAEnE;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,UAA8B;IAC1E,OAAO,UAAU,CAAC,WAAW,KAAK,YAAY;QAC5C,CAAC,UAAU,CAAC,WAAW,KAAK,aAAa,IAAI,UAAU,CAAC,eAAe,CAAC,CAAA;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,UAAiD,EAAE;IAEnD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,YAAY,cAAc,CAAA;IAClD,OAAO,SAAS,MAAM;QACpB,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA;QAChF,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,yEAAyE;QACzE,yEAAyE;QACzE,gCAAgC;QAChC,OAAO;YACL,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC;YAC3E,OAAO;SACR,CAAA;IACH,CAAC,CAAA;AACH,CAAC","sourcesContent":["import {\n resolveBrandlabDeployment,\n type BrandlabDeployment,\n type BrandlabEnvironment,\n type BrandlabSite,\n} from '@brandlab-digital/site-core/site'\n\nexport interface BrandlabRobotsMetadata {\n rules: Array<{ userAgent: string; allow?: string; disallow?: string | string[] }>\n sitemap?: string\n}\n\n/**\n * The shared API routes crawlers have no use for, kept out of a production\n * robots.txt (from 3.3.0): the contact endpoint, and the live Google reviews route\n * with its `/summary` and `/featured` variants, where every request is a paid Places\n * lookup. A robots.txt path is a prefix, so each covers its subpaths. Only these:\n * not a blanket `/api/`, because a site may serve something public there.\n */\nconst SHARED_API_DISALLOW = ['/api/contact', '/api/google-reviews']\n\n/**\n * Crawlers may index any production build except a Vercel Preview: the real\n * production deployment and a local `next start`. `next dev` and every\n * Preview are closed. There is no environment override.\n */\nexport function isBrandlabIndexableDeployment(deployment: BrandlabDeployment) {\n return deployment.environment === 'production' ||\n (deployment.environment === 'development' && deployment.productionBuild)\n}\n\n/**\n * `src/app/robots.ts`: `export default createBrandlabRobots(site)`.\n * The deployment is resolved when Next renders robots.txt. Production allows\n * everything but the shared API routes and names the canonical sitemap; every\n * other deployment keeps `Disallow: /`.\n */\nexport function createBrandlabRobots(\n site: BrandlabSite,\n options: { environment?: BrandlabEnvironment } = {},\n) {\n const sitemap = `${site.canonicalUrl}/sitemap.xml`\n return function robots(): BrandlabRobotsMetadata {\n const deployment = resolveBrandlabDeployment(options.environment ?? process.env)\n if (!isBrandlabIndexableDeployment(deployment)) {\n return { rules: [{ userAgent: '*', disallow: '/' }] }\n }\n // No `host` directive: it is a non-standard robots.txt extension ignored\n // by Google and Bing; canonical-host consolidation is owned by permanent\n // redirects and canonical URLs.\n return {\n rules: [{ userAgent: '*', allow: '/', disallow: [...SHARED_API_DISALLOW] }],\n sitemap,\n }\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Inputs only a person makes. A renderer that just loads the page (most bots, and
3
+ * Googlebot) sends none of them. `scroll` is not one: a script's own scrolling
4
+ * fires trusted scroll events too.
5
+ */
6
+ export declare const USER_INTERACTION_EVENTS: readonly ["pointerdown", "pointermove", "touchstart", "keydown", "wheel"];
7
+ /**
8
+ * Runs `waiter` once, after the page's first trusted user interaction, or straight
9
+ * away when there has been one. The listeners are registered once for the page,
10
+ * passive, and removed after that first interaction (or when no waiter is left).
11
+ * Returns a function that cancels the wait.
12
+ */
13
+ export declare function afterUserInteraction(waiter: () => void): () => void;
14
+ //# sourceMappingURL=user-interaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-interaction.d.ts","sourceRoot":"","sources":["../src/user-interaction.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,2EAA4E,CAAA;AAuBhH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAcnE"}
@@ -0,0 +1,53 @@
1
+ // Internal module (not in the package exports): the page's first trusted user
2
+ // interaction, which gates the live Google reviews lookup (a paid Places call).
3
+ /**
4
+ * Inputs only a person makes. A renderer that just loads the page (most bots, and
5
+ * Googlebot) sends none of them. `scroll` is not one: a script's own scrolling
6
+ * fires trusted scroll events too.
7
+ */
8
+ export const USER_INTERACTION_EVENTS = ['pointerdown', 'pointermove', 'touchstart', 'keydown', 'wheel'];
9
+ const LISTENER_OPTIONS = { capture: true, passive: true };
10
+ let interacted = false;
11
+ let listening = false;
12
+ const waiters = new Set();
13
+ function stopListening() {
14
+ if (!listening)
15
+ return;
16
+ listening = false;
17
+ for (const type of USER_INTERACTION_EVENTS)
18
+ window.removeEventListener(type, onInteraction, LISTENER_OPTIONS);
19
+ }
20
+ function onInteraction(event) {
21
+ // Synthetic events (dispatchEvent, el.click()) are not a person.
22
+ if (event.isTrusted !== true)
23
+ return;
24
+ interacted = true;
25
+ stopListening();
26
+ const ready = [...waiters];
27
+ waiters.clear();
28
+ ready.forEach((waiter) => waiter());
29
+ }
30
+ /**
31
+ * Runs `waiter` once, after the page's first trusted user interaction, or straight
32
+ * away when there has been one. The listeners are registered once for the page,
33
+ * passive, and removed after that first interaction (or when no waiter is left).
34
+ * Returns a function that cancels the wait.
35
+ */
36
+ export function afterUserInteraction(waiter) {
37
+ if (interacted) {
38
+ waiter();
39
+ return () => { };
40
+ }
41
+ waiters.add(waiter);
42
+ if (!listening && typeof window !== 'undefined') {
43
+ listening = true;
44
+ for (const type of USER_INTERACTION_EVENTS)
45
+ window.addEventListener(type, onInteraction, LISTENER_OPTIONS);
46
+ }
47
+ return () => {
48
+ waiters.delete(waiter);
49
+ if (waiters.size === 0)
50
+ stopListening();
51
+ };
52
+ }
53
+ //# sourceMappingURL=user-interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-interaction.js","sourceRoot":"","sources":["../src/user-interaction.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAU,CAAA;AAEhH,MAAM,gBAAgB,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAW,CAAA;AAClE,IAAI,UAAU,GAAG,KAAK,CAAA;AACtB,IAAI,SAAS,GAAG,KAAK,CAAA;AACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAc,CAAA;AAErC,SAAS,aAAa;IACpB,IAAI,CAAC,SAAS;QAAE,OAAM;IACtB,SAAS,GAAG,KAAK,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,uBAAuB;QAAE,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;AAC/G,CAAC;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,iEAAiE;IACjE,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI;QAAE,OAAM;IACpC,UAAU,GAAG,IAAI,CAAA;IACjB,aAAa,EAAE,CAAA;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,OAAO,CAAC,CAAA;IAC1B,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,EAAE,CAAA;QACR,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,IAAI,CAAC,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAChD,SAAS,GAAG,IAAI,CAAA;QAChB,KAAK,MAAM,IAAI,IAAI,uBAAuB;YAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;IAC5G,CAAC;IACD,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACtB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;YAAE,aAAa,EAAE,CAAA;IACzC,CAAC,CAAA;AACH,CAAC","sourcesContent":["// Internal module (not in the package exports): the page's first trusted user\n// interaction, which gates the live Google reviews lookup (a paid Places call).\n\n/**\n * Inputs only a person makes. A renderer that just loads the page (most bots, and\n * Googlebot) sends none of them. `scroll` is not one: a script's own scrolling\n * fires trusted scroll events too.\n */\nexport const USER_INTERACTION_EVENTS = ['pointerdown', 'pointermove', 'touchstart', 'keydown', 'wheel'] as const\n\nconst LISTENER_OPTIONS = { capture: true, passive: true } as const\nlet interacted = false\nlet listening = false\nconst waiters = new Set<() => void>()\n\nfunction stopListening() {\n if (!listening) return\n listening = false\n for (const type of USER_INTERACTION_EVENTS) window.removeEventListener(type, onInteraction, LISTENER_OPTIONS)\n}\n\nfunction onInteraction(event: Event) {\n // Synthetic events (dispatchEvent, el.click()) are not a person.\n if (event.isTrusted !== true) return\n interacted = true\n stopListening()\n const ready = [...waiters]\n waiters.clear()\n ready.forEach((waiter) => waiter())\n}\n\n/**\n * Runs `waiter` once, after the page's first trusted user interaction, or straight\n * away when there has been one. The listeners are registered once for the page,\n * passive, and removed after that first interaction (or when no waiter is left).\n * Returns a function that cancels the wait.\n */\nexport function afterUserInteraction(waiter: () => void): () => void {\n if (interacted) {\n waiter()\n return () => {}\n }\n waiters.add(waiter)\n if (!listening && typeof window !== 'undefined') {\n listening = true\n for (const type of USER_INTERACTION_EVENTS) window.addEventListener(type, onInteraction, LISTENER_OPTIONS)\n }\n return () => {\n waiters.delete(waiter)\n if (waiters.size === 0) stopListening()\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brandlab-digital/site-next",
3
- "version": "3.2.1",
3
+ "version": "3.3.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/RomieDandan/brandlab.git",
@@ -20,7 +20,7 @@
20
20
  "typecheck": "tsc --noEmit -p tsconfig.json"
21
21
  },
22
22
  "dependencies": {
23
- "@brandlab-digital/site-core": "3.2.1",
23
+ "@brandlab-digital/site-core": "3.3.0",
24
24
  "browser-image-compression": "2.0.2",
25
25
  "pdf-lib": "1.17.1",
26
26
  "server-only": "0.0.1",