@brandlab-digital/site-next 1.0.0-rc.2 → 1.0.0-rc.21

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 (88) hide show
  1. package/dist/analytics.d.ts +23 -0
  2. package/dist/analytics.d.ts.map +1 -1
  3. package/dist/analytics.js +61 -0
  4. package/dist/analytics.js.map +1 -1
  5. package/dist/blog.d.ts.map +1 -1
  6. package/dist/blog.js +5 -2
  7. package/dist/blog.js.map +1 -1
  8. package/dist/contact/attribution.d.ts +11 -0
  9. package/dist/contact/attribution.d.ts.map +1 -0
  10. package/dist/contact/attribution.js +145 -0
  11. package/dist/contact/attribution.js.map +1 -0
  12. package/dist/contact/client.d.ts +7 -1
  13. package/dist/contact/client.d.ts.map +1 -1
  14. package/dist/contact/client.js +32 -1
  15. package/dist/contact/client.js.map +1 -1
  16. package/dist/contact/context.d.ts +4 -0
  17. package/dist/contact/context.d.ts.map +1 -1
  18. package/dist/contact/context.js +56 -7
  19. package/dist/contact/context.js.map +1 -1
  20. package/dist/contact/contract.d.ts +3 -4
  21. package/dist/contact/contract.d.ts.map +1 -1
  22. package/dist/contact/contract.js +3 -5
  23. package/dist/contact/contract.js.map +1 -1
  24. package/dist/contact/email.d.ts +1 -0
  25. package/dist/contact/email.d.ts.map +1 -1
  26. package/dist/contact/email.js +137 -54
  27. package/dist/contact/email.js.map +1 -1
  28. package/dist/contact/image-sanitizer.d.ts +1 -1
  29. package/dist/contact/image-sanitizer.d.ts.map +1 -1
  30. package/dist/contact/image-sanitizer.js +12 -17
  31. package/dist/contact/image-sanitizer.js.map +1 -1
  32. package/dist/contact/index.d.ts +1 -0
  33. package/dist/contact/index.d.ts.map +1 -1
  34. package/dist/contact/index.js +2 -0
  35. package/dist/contact/index.js.map +1 -1
  36. package/dist/contact/production.d.ts +3 -1
  37. package/dist/contact/production.d.ts.map +1 -1
  38. package/dist/contact/production.js +31 -60
  39. package/dist/contact/production.js.map +1 -1
  40. package/dist/contact/resend.d.ts +1 -1
  41. package/dist/contact/resend.js +1 -1
  42. package/dist/contact/server-entry.d.ts +13 -0
  43. package/dist/contact/server-entry.d.ts.map +1 -0
  44. package/dist/contact/server-entry.js +13 -0
  45. package/dist/contact/server-entry.js.map +1 -0
  46. package/dist/contact/server.d.ts.map +1 -1
  47. package/dist/contact/server.js +27 -28
  48. package/dist/contact/server.js.map +1 -1
  49. package/dist/contact/shared.d.ts +3 -6
  50. package/dist/contact/shared.d.ts.map +1 -1
  51. package/dist/contact/shared.js.map +1 -1
  52. package/dist/google-reviews-client.d.ts +20 -0
  53. package/dist/google-reviews-client.d.ts.map +1 -0
  54. package/dist/google-reviews-client.js +85 -0
  55. package/dist/google-reviews-client.js.map +1 -0
  56. package/dist/google-reviews-durable.d.ts +22 -0
  57. package/dist/google-reviews-durable.d.ts.map +1 -0
  58. package/dist/google-reviews-durable.js +81 -0
  59. package/dist/google-reviews-durable.js.map +1 -0
  60. package/dist/google-reviews-server.d.ts +58 -0
  61. package/dist/google-reviews-server.d.ts.map +1 -0
  62. package/dist/google-reviews-server.js +151 -0
  63. package/dist/google-reviews-server.js.map +1 -0
  64. package/dist/google-reviews-ui.d.ts +599 -0
  65. package/dist/google-reviews-ui.d.ts.map +1 -0
  66. package/dist/google-reviews-ui.js +188 -0
  67. package/dist/google-reviews-ui.js.map +1 -0
  68. package/dist/google-reviews.d.ts +4 -322
  69. package/dist/google-reviews.d.ts.map +1 -1
  70. package/dist/google-reviews.js +4 -252
  71. package/dist/google-reviews.js.map +1 -1
  72. package/dist/google-tag-plan.d.ts +19 -0
  73. package/dist/google-tag-plan.d.ts.map +1 -0
  74. package/dist/google-tag-plan.js +85 -0
  75. package/dist/google-tag-plan.js.map +1 -0
  76. package/dist/google-tag.d.ts +17 -0
  77. package/dist/google-tag.d.ts.map +1 -0
  78. package/dist/google-tag.js +18 -0
  79. package/dist/google-tag.js.map +1 -0
  80. package/dist/instrumentation-client.d.ts +2 -0
  81. package/dist/instrumentation-client.d.ts.map +1 -1
  82. package/dist/instrumentation-client.js +39 -3
  83. package/dist/instrumentation-client.js.map +1 -1
  84. package/dist/redis-rest.d.ts +12 -0
  85. package/dist/redis-rest.d.ts.map +1 -0
  86. package/dist/redis-rest.js +83 -0
  87. package/dist/redis-rest.js.map +1 -0
  88. package/package.json +29 -36
@@ -0,0 +1,83 @@
1
+ import 'server-only';
2
+ const DEFAULT_REQUEST_TIMEOUT_MS = 5_000;
3
+ const RESPONSE_MAXIMUM_BYTES = 64 * 1_024;
4
+ function normalizeHttpsOrigin(value, field) {
5
+ const candidate = value.includes('://') ? value : `https://${value}`;
6
+ let parsed;
7
+ try {
8
+ parsed = new URL(candidate);
9
+ }
10
+ catch {
11
+ throw new Error(`${field} must resolve to an absolute HTTPS origin.`);
12
+ }
13
+ if (parsed.protocol !== 'https:' ||
14
+ parsed.username ||
15
+ parsed.password ||
16
+ parsed.pathname !== '/' ||
17
+ parsed.search ||
18
+ parsed.hash ||
19
+ !parsed.hostname.includes('.')) {
20
+ throw new Error(`${field} must resolve to an absolute HTTPS origin.`);
21
+ }
22
+ return parsed.origin;
23
+ }
24
+ /** Shared server-only Upstash REST boundary used by Brandlab durable runtimes. */
25
+ export function createBrandlabUpstashRedisEvalClient(options) {
26
+ const endpoint = normalizeHttpsOrigin(options.url, 'Redis REST URL');
27
+ if (options.token.length < 16 ||
28
+ options.token.length > 8_192 ||
29
+ /[\u0000-\u001f\u007f]/.test(options.token)) {
30
+ throw new Error('Redis REST token is invalid.');
31
+ }
32
+ const fetcher = options.fetcher ?? fetch;
33
+ if (typeof fetcher !== 'function') {
34
+ throw new Error('A Redis REST fetch implementation is required.');
35
+ }
36
+ const timeoutMs = options.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
37
+ if (!Number.isSafeInteger(timeoutMs) || timeoutMs < 100 || timeoutMs > 20_000) {
38
+ throw new Error('Redis REST timeout must be between 100 and 20000 milliseconds.');
39
+ }
40
+ return {
41
+ async eval(script, keys, args) {
42
+ const controller = new AbortController();
43
+ const timeout = globalThis.setTimeout(() => controller.abort(), timeoutMs);
44
+ try {
45
+ const response = await fetcher(endpoint, {
46
+ method: 'POST',
47
+ headers: {
48
+ authorization: `Bearer ${options.token}`,
49
+ 'content-type': 'application/json',
50
+ },
51
+ body: JSON.stringify(['EVAL', script, keys.length, ...keys, ...args]),
52
+ cache: 'no-store',
53
+ signal: controller.signal,
54
+ });
55
+ if (!response.ok)
56
+ throw new Error('The durable Brandlab store is unavailable.');
57
+ const rawPayload = await response.text();
58
+ if (new TextEncoder().encode(rawPayload).byteLength > RESPONSE_MAXIMUM_BYTES) {
59
+ throw new Error('The durable Brandlab store returned an invalid result.');
60
+ }
61
+ let payload;
62
+ try {
63
+ payload = JSON.parse(rawPayload);
64
+ }
65
+ catch {
66
+ throw new Error('The durable Brandlab store returned an invalid result.');
67
+ }
68
+ if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
69
+ throw new Error('The durable Brandlab store returned an invalid result.');
70
+ }
71
+ const record = payload;
72
+ if (record.error || !Object.prototype.hasOwnProperty.call(record, 'result')) {
73
+ throw new Error('The durable Brandlab store returned an invalid result.');
74
+ }
75
+ return record.result;
76
+ }
77
+ finally {
78
+ globalThis.clearTimeout(timeout);
79
+ }
80
+ },
81
+ };
82
+ }
83
+ //# sourceMappingURL=redis-rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-rest.js","sourceRoot":"","sources":["../src/redis-rest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,11 @@
1
1
  {
2
2
  "name": "@brandlab-digital/site-next",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.21",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/RomieDandan/brandlab.git",
7
+ "directory": "standards/source/packages/site-next"
8
+ },
4
9
  "private": false,
5
10
  "type": "module",
6
11
  "sideEffects": false,
@@ -13,7 +18,7 @@
13
18
  "typecheck": "tsc --noEmit -p tsconfig.json"
14
19
  },
15
20
  "dependencies": {
16
- "@brandlab-digital/site-core": "1.0.0-rc.2",
21
+ "@brandlab-digital/site-core": "1.0.0-rc.21",
17
22
  "server-only": "0.0.1",
18
23
  "sharp": "0.35.3"
19
24
  },
@@ -43,49 +48,25 @@
43
48
  "import": "./dist/contact/index.js"
44
49
  },
45
50
  "./contact/server": {
46
- "types": "./dist/contact/server.d.ts",
47
- "import": "./dist/contact/server.js"
48
- },
49
- "./contact/context": {
50
- "types": "./dist/contact/context.d.ts",
51
- "import": "./dist/contact/context.js"
52
- },
53
- "./contact/request": {
54
- "types": "./dist/contact/request.d.ts",
55
- "import": "./dist/contact/request.js"
56
- },
57
- "./contact/route": {
58
- "types": "./dist/contact/route.d.ts",
59
- "import": "./dist/contact/route.js"
60
- },
61
- "./contact/durable": {
62
- "types": "./dist/contact/durable.d.ts",
63
- "import": "./dist/contact/durable.js"
64
- },
65
- "./contact/email": {
66
- "types": "./dist/contact/email.d.ts",
67
- "import": "./dist/contact/email.js"
68
- },
69
- "./contact/client": {
70
- "types": "./dist/contact/client.d.ts",
71
- "import": "./dist/contact/client.js"
72
- },
73
- "./contact/resend": {
74
- "types": "./dist/contact/resend.d.ts",
75
- "import": "./dist/contact/resend.js"
51
+ "types": "./dist/contact/server-entry.d.ts",
52
+ "import": "./dist/contact/server-entry.js"
76
53
  },
77
54
  "./contact/testing": {
78
55
  "types": "./dist/contact/testing.d.ts",
79
56
  "import": "./dist/contact/testing.js"
80
57
  },
81
- "./contact/production": {
82
- "types": "./dist/contact/production.d.ts",
83
- "import": "./dist/contact/production.js"
84
- },
85
58
  "./analytics": {
86
59
  "types": "./dist/analytics.d.ts",
87
60
  "import": "./dist/analytics.js"
88
61
  },
62
+ "./analytics/google-tag": {
63
+ "types": "./dist/google-tag.d.ts",
64
+ "import": "./dist/google-tag.js"
65
+ },
66
+ "./analytics/google-tag-plan": {
67
+ "types": "./dist/google-tag-plan.d.ts",
68
+ "import": "./dist/google-tag-plan.js"
69
+ },
89
70
  "./blog": {
90
71
  "types": "./dist/blog.d.ts",
91
72
  "import": "./dist/blog.js"
@@ -126,6 +107,18 @@
126
107
  "./google-reviews": {
127
108
  "types": "./dist/google-reviews.d.ts",
128
109
  "import": "./dist/google-reviews.js"
110
+ },
111
+ "./google-reviews/server": {
112
+ "types": "./dist/google-reviews-server.d.ts",
113
+ "import": "./dist/google-reviews-server.js"
114
+ },
115
+ "./google-reviews/client": {
116
+ "types": "./dist/google-reviews-client.d.ts",
117
+ "import": "./dist/google-reviews-client.js"
118
+ },
119
+ "./google-reviews/ui": {
120
+ "types": "./dist/google-reviews-ui.d.ts",
121
+ "import": "./dist/google-reviews-ui.js"
129
122
  }
130
123
  }
131
124
  }