@reykjavik/webtools 0.1.37 → 0.2.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.
- package/CHANGELOG.md +12 -0
- package/CookieHubConsent.d.ts +2 -2
- package/CookieHubConsent.js +2 -2
- package/README.md +9 -5
- package/SiteImprove.d.ts +3 -3
- package/SiteImprove.js +3 -3
- package/async.d.ts +2 -2
- package/async.js +1 -1
- package/errorhandling.d.ts +10 -10
- package/errorhandling.js +7 -7
- package/esm/CookieHubConsent.d.ts +2 -2
- package/esm/CookieHubConsent.js +2 -2
- package/esm/SiteImprove.d.ts +3 -3
- package/esm/SiteImprove.js +3 -3
- package/esm/async.d.ts +2 -2
- package/esm/async.js +1 -1
- package/esm/errorhandling.d.ts +10 -10
- package/esm/errorhandling.js +7 -7
- package/esm/http.d.ts +5 -5
- package/esm/http.js +4 -4
- package/esm/index.d.ts +2 -3
- package/esm/next/http.d.ts +2 -2
- package/esm/next/http.js +3 -3
- package/{remix → esm/react-router}/Wait.d.ts +2 -2
- package/esm/{remix → react-router}/Wait.js +2 -2
- package/esm/{remix → react-router}/http.d.ts +1 -1
- package/esm/{remix → react-router}/http.js +1 -1
- package/esm/vanillaExtract.d.ts +3 -132
- package/esm/vanillaExtract.js +2 -67
- package/http.d.ts +5 -5
- package/http.js +4 -4
- package/index.d.ts +2 -3
- package/next/http.d.ts +2 -2
- package/next/http.js +3 -3
- package/package.json +13 -17
- package/{esm/remix → react-router}/Wait.d.ts +2 -2
- package/{remix → react-router}/Wait.js +3 -3
- package/{remix → react-router}/http.d.ts +1 -1
- package/{remix → react-router}/http.js +1 -1
- package/vanillaExtract.d.ts +3 -132
- package/vanillaExtract.js +3 -70
- package/esm/next/SiteImprove.d.ts +0 -9
- package/esm/next/SiteImprove.js +0 -7
- package/next/SiteImprove.d.ts +0 -9
- package/next/SiteImprove.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
- ... <!-- Add new lines here. -->
|
|
6
6
|
|
|
7
|
+
## 0.2.0
|
|
8
|
+
|
|
9
|
+
_2024-12-12_
|
|
10
|
+
|
|
11
|
+
- feat: Add `@reykjavik/webtools/react-router/*` (previously `/remix/*`)
|
|
12
|
+
- **BREAKING** feat: Remove all `@reykjavik/webtools/react-router/*` modules
|
|
13
|
+
- **BREAKING** feat: Bump `pkg.engines.node` version to >=20
|
|
14
|
+
- **BREAKING** feat: Remove `@reykjavik/webtools/next/SiteImprove` (deprecated
|
|
15
|
+
module)
|
|
16
|
+
- **BREAKING** feat: Remove deprecated exports `vanillaNest` and
|
|
17
|
+
`vanillaClassNested` from `@reykjavik/webtools/vanillaExtract`
|
|
18
|
+
|
|
7
19
|
## 0.1.37
|
|
8
20
|
|
|
9
21
|
_2024-10-23_
|
package/CookieHubConsent.d.ts
CHANGED
|
@@ -218,14 +218,14 @@ export type CookieHubProviderProps = EitherObj<{
|
|
|
218
218
|
* management script and sets up a React state object with the relevant user
|
|
219
219
|
* consent flags.
|
|
220
220
|
*
|
|
221
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
221
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cookiehubprovider-component
|
|
222
222
|
*/
|
|
223
223
|
export declare const CookieHubProvider: (props: CookieHubProviderProps) => React.JSX.Element;
|
|
224
224
|
/**
|
|
225
225
|
* Returns up-to-date cookie consent flags. For use in React components or hook
|
|
226
226
|
* functions.
|
|
227
227
|
*
|
|
228
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
228
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#usecookiehubconsent
|
|
229
229
|
*/
|
|
230
230
|
export declare const useCookieHubConsent: () => Partial<CookieHubContextState['consent']>;
|
|
231
231
|
export {};
|
package/CookieHubConsent.js
CHANGED
|
@@ -61,7 +61,7 @@ const moveCookiehubScriptInDomTree = () => {
|
|
|
61
61
|
* management script and sets up a React state object with the relevant user
|
|
62
62
|
* consent flags.
|
|
63
63
|
*
|
|
64
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
64
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cookiehubprovider-component
|
|
65
65
|
*/
|
|
66
66
|
const CookieHubProvider = (props) => {
|
|
67
67
|
const [state, setState] = (0, react_1.useState)(initialConsentState);
|
|
@@ -134,7 +134,7 @@ exports.CookieHubProvider = CookieHubProvider;
|
|
|
134
134
|
* Returns up-to-date cookie consent flags. For use in React components or hook
|
|
135
135
|
* functions.
|
|
136
136
|
*
|
|
137
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
137
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#usecookiehubconsent
|
|
138
138
|
*/
|
|
139
139
|
const useCookieHubConsent = () => { var _a; return ((_a = (0, react_1.useContext)(CookieHubContext)) === null || _a === void 0 ? void 0 : _a.consent) || {}; };
|
|
140
140
|
exports.useCookieHubConsent = useCookieHubConsent;
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ bun add @reykjavik/webtools
|
|
|
51
51
|
- [`vanillaGlobal`](#vanillaglobal)
|
|
52
52
|
- [`vanillaProps`](#vanillaprops)
|
|
53
53
|
- [Framework Specific Tools](#framework-specific-tools)
|
|
54
|
-
- [
|
|
54
|
+
- [React-Router Tools](#react-router-tools)
|
|
55
55
|
- [Next.js Tools](#nextjs-tools)
|
|
56
56
|
- [Contributing](#contributing)
|
|
57
57
|
- [Changelog](#changelog)
|
|
@@ -484,7 +484,8 @@ if (myResult.error) {
|
|
|
484
484
|
|
|
485
485
|
### `Result.catch`
|
|
486
486
|
|
|
487
|
-
**Syntax:**
|
|
487
|
+
**Syntax:**
|
|
488
|
+
`Result.catch<T, Err>(callback: () => T): ResultTupleObj<T, Err>`
|
|
488
489
|
**Syntax:**
|
|
489
490
|
`Result.catch<T, Err>(promise: Promise<T>): Promise<ResultTupleObj<T, Err>>`
|
|
490
491
|
|
|
@@ -881,10 +882,13 @@ const myStyle = style({
|
|
|
881
882
|
|
|
882
883
|
## Framework Specific Tools
|
|
883
884
|
|
|
884
|
-
###
|
|
885
|
+
### React-Router Tools
|
|
886
|
+
|
|
887
|
+
See [README-rr.md](./README-rr.md) for helpers and components specifically
|
|
888
|
+
designed for use in Remix.run projects.
|
|
885
889
|
|
|
886
|
-
|
|
887
|
-
|
|
890
|
+
(NOTE: If you're still using [Remix.run](https://remix.run) you can install
|
|
891
|
+
version `"^0.1.22"` of this package.)
|
|
888
892
|
|
|
889
893
|
<!-- #fragment anchors to not break older v0.1 @see links -->
|
|
890
894
|
|
package/SiteImprove.d.ts
CHANGED
|
@@ -45,14 +45,14 @@ type SiteImproveCustomEvent = [
|
|
|
45
45
|
/**
|
|
46
46
|
* A small helper for tracking custom UI events and reporting them to SiteImrove.
|
|
47
47
|
*
|
|
48
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
48
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimprove-helper
|
|
49
49
|
*/
|
|
50
50
|
export declare const pingSiteImprove: (category: string, action: string, label?: string) => void;
|
|
51
51
|
/**
|
|
52
52
|
* A small helper for reporting to SiteImrove when the user is programmatically
|
|
53
53
|
* being sent to a different URL/resource.
|
|
54
54
|
*
|
|
55
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
55
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimproveoutbound-helper
|
|
56
56
|
*/
|
|
57
57
|
export declare const pingSiteImproveOutbound: (ourl: string) => void;
|
|
58
58
|
export type SiteImproveProps = EitherObj<{
|
|
@@ -94,7 +94,7 @@ export type SiteImproveProps = EitherObj<{
|
|
|
94
94
|
* A component for loading a SiteImprove analytics script and set up page-view
|
|
95
95
|
* tracking across client-side (pushState, replaceState) routing.
|
|
96
96
|
*
|
|
97
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
97
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#siteimprove-component
|
|
98
98
|
*/
|
|
99
99
|
export declare const SiteImprove: (props: SiteImproveProps) => null;
|
|
100
100
|
export {};
|
package/SiteImprove.js
CHANGED
|
@@ -29,7 +29,7 @@ const trackDynamicPageView = (url, refUrl, title) => _emitEvent(['trackdynamic',
|
|
|
29
29
|
/**
|
|
30
30
|
* A small helper for tracking custom UI events and reporting them to SiteImrove.
|
|
31
31
|
*
|
|
32
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
32
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimprove-helper
|
|
33
33
|
*/
|
|
34
34
|
const pingSiteImprove = (category, action, label) => {
|
|
35
35
|
if (process.env.NODE_ENV === 'development' &&
|
|
@@ -44,7 +44,7 @@ exports.pingSiteImprove = pingSiteImprove;
|
|
|
44
44
|
* A small helper for reporting to SiteImrove when the user is programmatically
|
|
45
45
|
* being sent to a different URL/resource.
|
|
46
46
|
*
|
|
47
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
47
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimproveoutbound-helper
|
|
48
48
|
*/
|
|
49
49
|
const pingSiteImproveOutbound = (ourl) => {
|
|
50
50
|
if (process.env.NODE_ENV === 'development' &&
|
|
@@ -125,7 +125,7 @@ const loc = typeof document !== 'undefined' ? document.location : {};
|
|
|
125
125
|
* A component for loading a SiteImprove analytics script and set up page-view
|
|
126
126
|
* tracking across client-side (pushState, replaceState) routing.
|
|
127
127
|
*
|
|
128
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
128
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#siteimprove-component
|
|
129
129
|
*/
|
|
130
130
|
const SiteImprove = (props) => {
|
|
131
131
|
const consented = useResolvedAnalyticsConsent(props.hasConsented);
|
package/async.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare const addLag: (length: number) => <T>(res: T) => Promise<T>;
|
|
|
14
14
|
* Resolves as soon as all of the passed `promises` have resolved/settled,
|
|
15
15
|
* or after `timeout` milliseconds — whichever comes first.
|
|
16
16
|
*
|
|
17
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
17
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#maxwait
|
|
18
18
|
*/
|
|
19
19
|
export declare function maxWait(timeout: number, promises: Array<unknown>): Promise<void>;
|
|
20
20
|
export declare function maxWait<PromiseMap extends PlainObj>(timeout: number, promises: PromiseMap): Promise<{
|
|
@@ -24,7 +24,7 @@ export declare function maxWait<PromiseMap extends PlainObj>(timeout: number, pr
|
|
|
24
24
|
* A variation of `Promise.all()` that accepts an object with named promises
|
|
25
25
|
* and returns a same-shaped object with the resolved values.
|
|
26
26
|
*
|
|
27
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
27
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#promiseallobject
|
|
28
28
|
*/
|
|
29
29
|
export declare const promiseAllObject: <T extends PlainObj>(promisesMap: T) => Promise<{ -readonly [K in keyof T]: Awaited<T[K]>; }>;
|
|
30
30
|
export {};
|
package/async.js
CHANGED
|
@@ -45,7 +45,7 @@ exports.maxWait = maxWait;
|
|
|
45
45
|
* A variation of `Promise.all()` that accepts an object with named promises
|
|
46
46
|
* and returns a same-shaped object with the resolved values.
|
|
47
47
|
*
|
|
48
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
48
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#promiseallobject
|
|
49
49
|
*/
|
|
50
50
|
const promiseAllObject = (promisesMap) => Promise.all(Object.values(promisesMap)).then((results) => {
|
|
51
51
|
const keys = Object.keys(promisesMap);
|
package/errorhandling.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Error subclass for thrown values that got cought and turned into an actual
|
|
3
3
|
* Error, with the thrown value as the `payload` property.
|
|
4
4
|
*
|
|
5
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
5
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
6
6
|
*/
|
|
7
7
|
export declare class ErrorFromPayload extends Error {
|
|
8
8
|
payload?: unknown;
|
|
@@ -17,7 +17,7 @@ export declare class ErrorFromPayload extends Error {
|
|
|
17
17
|
* something else it is wrapped in a new `ErrorFromPayload` instance, and the
|
|
18
18
|
* original value is stored in a `payload`
|
|
19
19
|
*
|
|
20
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
20
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
21
21
|
*/
|
|
22
22
|
export declare const asError: (maybeError: unknown) => ErrorFromPayload;
|
|
23
23
|
type SuccessResult<T> = [error: undefined, result: T] & {
|
|
@@ -31,14 +31,14 @@ type FailResult<E extends Error> = [error: E] & {
|
|
|
31
31
|
/**
|
|
32
32
|
* Simple bare-bones discriminated tuple type for a [error, result] pair.
|
|
33
33
|
*
|
|
34
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
34
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#type-resulttuple
|
|
35
35
|
*/
|
|
36
36
|
export type ResultTuple<T, E extends Error = Error> = [error: undefined, result: T] | [error: E];
|
|
37
37
|
/**
|
|
38
38
|
* Discriminated tuple type for a `[error, result]` pair (same as `ResultTuple`)
|
|
39
39
|
* but with named properties `error` and `result` attached for dev convenience.
|
|
40
40
|
*
|
|
41
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
41
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#type-resulttupleobj
|
|
42
42
|
*/
|
|
43
43
|
export type ResultTupleObj<T, E extends Error = Error> = SuccessResult<T> | FailResult<E>;
|
|
44
44
|
/**
|
|
@@ -50,7 +50,7 @@ export type ResultTupleObj<T, E extends Error = Error> = SuccessResult<T> | Fail
|
|
|
50
50
|
*
|
|
51
51
|
* Works on both promises and sync callback functions.
|
|
52
52
|
*
|
|
53
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
53
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultcatch
|
|
54
54
|
*/
|
|
55
55
|
declare function catch_<T, E extends Error = ErrorFromPayload>(promise: Promise<T>): Promise<ResultTupleObj<T, E>>;
|
|
56
56
|
declare function catch_<T, E extends Error = ErrorFromPayload>(callback: () => T): ResultTupleObj<T, E>;
|
|
@@ -58,19 +58,19 @@ declare function catch_<T, E extends Error = ErrorFromPayload>(callback: () => T
|
|
|
58
58
|
* Singleton object with small methods for creating, mapping or handling
|
|
59
59
|
* `ResultTupleObj` instances.
|
|
60
60
|
*
|
|
61
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
61
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#result-singleton
|
|
62
62
|
*/
|
|
63
63
|
export declare const Result: {
|
|
64
64
|
/**
|
|
65
65
|
* Factory for creating a successful `Result.TupleObj`.
|
|
66
66
|
*
|
|
67
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
67
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsuccess
|
|
68
68
|
*/
|
|
69
69
|
Success: <T>(result: T) => SuccessResult<T>;
|
|
70
70
|
/**
|
|
71
71
|
* Factory for creating a failed `Result.TupleObj`.
|
|
72
72
|
*
|
|
73
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
73
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsfail
|
|
74
74
|
*/
|
|
75
75
|
Fail: <E extends Error = Error>(e: unknown) => FailResult<E>;
|
|
76
76
|
catch: typeof catch_;
|
|
@@ -79,14 +79,14 @@ export declare const Result: {
|
|
|
79
79
|
* object, applying a transformation function to the result, but retaining
|
|
80
80
|
* the error as-is.
|
|
81
81
|
*
|
|
82
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
82
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulmap
|
|
83
83
|
*/
|
|
84
84
|
map: <T_1, T2, E_1 extends Error>(result: ResultTuple<T_1, E_1>, mapFn: (resultValue: T_1) => T2) => ResultTupleObj<T2, E_1>;
|
|
85
85
|
/**
|
|
86
86
|
* Unwraps a discriminated [error, result] `Result.Tuple`-like object
|
|
87
87
|
* and throws if there's an error, but returns the result otherwise.
|
|
88
88
|
*
|
|
89
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
89
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulthrow
|
|
90
90
|
*/
|
|
91
91
|
throw: <T_2>(result: ResultTuple<T_2, Error>) => T_2;
|
|
92
92
|
};
|
package/errorhandling.js
CHANGED
|
@@ -5,7 +5,7 @@ exports.Result = exports.asError = exports.ErrorFromPayload = void 0;
|
|
|
5
5
|
* Error subclass for thrown values that got cought and turned into an actual
|
|
6
6
|
* Error, with the thrown value as the `payload` property.
|
|
7
7
|
*
|
|
8
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
8
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
9
9
|
*/
|
|
10
10
|
class ErrorFromPayload extends Error {
|
|
11
11
|
constructor(payload) {
|
|
@@ -27,7 +27,7 @@ exports.ErrorFromPayload = ErrorFromPayload;
|
|
|
27
27
|
* something else it is wrapped in a new `ErrorFromPayload` instance, and the
|
|
28
28
|
* original value is stored in a `payload`
|
|
29
29
|
*
|
|
30
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
30
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
31
31
|
*/
|
|
32
32
|
const asError = (maybeError) => {
|
|
33
33
|
if (maybeError instanceof Error) {
|
|
@@ -61,19 +61,19 @@ function catch_(something) {
|
|
|
61
61
|
* Singleton object with small methods for creating, mapping or handling
|
|
62
62
|
* `ResultTupleObj` instances.
|
|
63
63
|
*
|
|
64
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
64
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#result-singleton
|
|
65
65
|
*/
|
|
66
66
|
exports.Result = {
|
|
67
67
|
/**
|
|
68
68
|
* Factory for creating a successful `Result.TupleObj`.
|
|
69
69
|
*
|
|
70
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
70
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsuccess
|
|
71
71
|
*/
|
|
72
72
|
Success,
|
|
73
73
|
/**
|
|
74
74
|
* Factory for creating a failed `Result.TupleObj`.
|
|
75
75
|
*
|
|
76
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
76
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsfail
|
|
77
77
|
*/
|
|
78
78
|
Fail,
|
|
79
79
|
// NOTE: The JSDoc must be placed above the `catch_` function above.
|
|
@@ -83,7 +83,7 @@ exports.Result = {
|
|
|
83
83
|
* object, applying a transformation function to the result, but retaining
|
|
84
84
|
* the error as-is.
|
|
85
85
|
*
|
|
86
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
86
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulmap
|
|
87
87
|
*/
|
|
88
88
|
map: (result, mapFn) => {
|
|
89
89
|
const [error, resultValue] = result;
|
|
@@ -96,7 +96,7 @@ exports.Result = {
|
|
|
96
96
|
* Unwraps a discriminated [error, result] `Result.Tuple`-like object
|
|
97
97
|
* and throws if there's an error, but returns the result otherwise.
|
|
98
98
|
*
|
|
99
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
99
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulthrow
|
|
100
100
|
*/
|
|
101
101
|
throw: (result) => {
|
|
102
102
|
if (result[0]) {
|
|
@@ -218,14 +218,14 @@ export type CookieHubProviderProps = EitherObj<{
|
|
|
218
218
|
* management script and sets up a React state object with the relevant user
|
|
219
219
|
* consent flags.
|
|
220
220
|
*
|
|
221
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
221
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cookiehubprovider-component
|
|
222
222
|
*/
|
|
223
223
|
export declare const CookieHubProvider: (props: CookieHubProviderProps) => React.JSX.Element;
|
|
224
224
|
/**
|
|
225
225
|
* Returns up-to-date cookie consent flags. For use in React components or hook
|
|
226
226
|
* functions.
|
|
227
227
|
*
|
|
228
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
228
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#usecookiehubconsent
|
|
229
229
|
*/
|
|
230
230
|
export declare const useCookieHubConsent: () => Partial<CookieHubContextState['consent']>;
|
|
231
231
|
export {};
|
package/esm/CookieHubConsent.js
CHANGED
|
@@ -35,7 +35,7 @@ const moveCookiehubScriptInDomTree = () => {
|
|
|
35
35
|
* management script and sets up a React state object with the relevant user
|
|
36
36
|
* consent flags.
|
|
37
37
|
*
|
|
38
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
38
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cookiehubprovider-component
|
|
39
39
|
*/
|
|
40
40
|
export const CookieHubProvider = (props) => {
|
|
41
41
|
const [state, setState] = useState(initialConsentState);
|
|
@@ -107,6 +107,6 @@ export const CookieHubProvider = (props) => {
|
|
|
107
107
|
* Returns up-to-date cookie consent flags. For use in React components or hook
|
|
108
108
|
* functions.
|
|
109
109
|
*
|
|
110
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
110
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#usecookiehubconsent
|
|
111
111
|
*/
|
|
112
112
|
export const useCookieHubConsent = () => { var _a; return ((_a = useContext(CookieHubContext)) === null || _a === void 0 ? void 0 : _a.consent) || {}; };
|
package/esm/SiteImprove.d.ts
CHANGED
|
@@ -45,14 +45,14 @@ type SiteImproveCustomEvent = [
|
|
|
45
45
|
/**
|
|
46
46
|
* A small helper for tracking custom UI events and reporting them to SiteImrove.
|
|
47
47
|
*
|
|
48
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
48
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimprove-helper
|
|
49
49
|
*/
|
|
50
50
|
export declare const pingSiteImprove: (category: string, action: string, label?: string) => void;
|
|
51
51
|
/**
|
|
52
52
|
* A small helper for reporting to SiteImrove when the user is programmatically
|
|
53
53
|
* being sent to a different URL/resource.
|
|
54
54
|
*
|
|
55
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
55
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimproveoutbound-helper
|
|
56
56
|
*/
|
|
57
57
|
export declare const pingSiteImproveOutbound: (ourl: string) => void;
|
|
58
58
|
export type SiteImproveProps = EitherObj<{
|
|
@@ -94,7 +94,7 @@ export type SiteImproveProps = EitherObj<{
|
|
|
94
94
|
* A component for loading a SiteImprove analytics script and set up page-view
|
|
95
95
|
* tracking across client-side (pushState, replaceState) routing.
|
|
96
96
|
*
|
|
97
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
97
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#siteimprove-component
|
|
98
98
|
*/
|
|
99
99
|
export declare const SiteImprove: (props: SiteImproveProps) => null;
|
|
100
100
|
export {};
|
package/esm/SiteImprove.js
CHANGED
|
@@ -26,7 +26,7 @@ const trackDynamicPageView = (url, refUrl, title) => _emitEvent(['trackdynamic',
|
|
|
26
26
|
/**
|
|
27
27
|
* A small helper for tracking custom UI events and reporting them to SiteImrove.
|
|
28
28
|
*
|
|
29
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
29
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimprove-helper
|
|
30
30
|
*/
|
|
31
31
|
export const pingSiteImprove = (category, action, label) => {
|
|
32
32
|
if (process.env.NODE_ENV === 'development' &&
|
|
@@ -40,7 +40,7 @@ export const pingSiteImprove = (category, action, label) => {
|
|
|
40
40
|
* A small helper for reporting to SiteImrove when the user is programmatically
|
|
41
41
|
* being sent to a different URL/resource.
|
|
42
42
|
*
|
|
43
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
43
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#pingsiteimproveoutbound-helper
|
|
44
44
|
*/
|
|
45
45
|
export const pingSiteImproveOutbound = (ourl) => {
|
|
46
46
|
if (process.env.NODE_ENV === 'development' &&
|
|
@@ -120,7 +120,7 @@ const loc = typeof document !== 'undefined' ? document.location : {};
|
|
|
120
120
|
* A component for loading a SiteImprove analytics script and set up page-view
|
|
121
121
|
* tracking across client-side (pushState, replaceState) routing.
|
|
122
122
|
*
|
|
123
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
123
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#siteimprove-component
|
|
124
124
|
*/
|
|
125
125
|
export const SiteImprove = (props) => {
|
|
126
126
|
const consented = useResolvedAnalyticsConsent(props.hasConsented);
|
package/esm/async.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare const addLag: (length: number) => <T>(res: T) => Promise<T>;
|
|
|
14
14
|
* Resolves as soon as all of the passed `promises` have resolved/settled,
|
|
15
15
|
* or after `timeout` milliseconds — whichever comes first.
|
|
16
16
|
*
|
|
17
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
17
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#maxwait
|
|
18
18
|
*/
|
|
19
19
|
export declare function maxWait(timeout: number, promises: Array<unknown>): Promise<void>;
|
|
20
20
|
export declare function maxWait<PromiseMap extends PlainObj>(timeout: number, promises: PromiseMap): Promise<{
|
|
@@ -24,7 +24,7 @@ export declare function maxWait<PromiseMap extends PlainObj>(timeout: number, pr
|
|
|
24
24
|
* A variation of `Promise.all()` that accepts an object with named promises
|
|
25
25
|
* and returns a same-shaped object with the resolved values.
|
|
26
26
|
*
|
|
27
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
27
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#promiseallobject
|
|
28
28
|
*/
|
|
29
29
|
export declare const promiseAllObject: <T extends PlainObj>(promisesMap: T) => Promise<{ -readonly [K in keyof T]: Awaited<T[K]>; }>;
|
|
30
30
|
export {};
|
package/esm/async.js
CHANGED
|
@@ -39,7 +39,7 @@ export function maxWait(timeout, promises) {
|
|
|
39
39
|
* A variation of `Promise.all()` that accepts an object with named promises
|
|
40
40
|
* and returns a same-shaped object with the resolved values.
|
|
41
41
|
*
|
|
42
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
42
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#promiseallobject
|
|
43
43
|
*/
|
|
44
44
|
export const promiseAllObject = (promisesMap) => Promise.all(Object.values(promisesMap)).then((results) => {
|
|
45
45
|
const keys = Object.keys(promisesMap);
|
package/esm/errorhandling.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Error subclass for thrown values that got cought and turned into an actual
|
|
3
3
|
* Error, with the thrown value as the `payload` property.
|
|
4
4
|
*
|
|
5
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
5
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
6
6
|
*/
|
|
7
7
|
export declare class ErrorFromPayload extends Error {
|
|
8
8
|
payload?: unknown;
|
|
@@ -17,7 +17,7 @@ export declare class ErrorFromPayload extends Error {
|
|
|
17
17
|
* something else it is wrapped in a new `ErrorFromPayload` instance, and the
|
|
18
18
|
* original value is stored in a `payload`
|
|
19
19
|
*
|
|
20
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
20
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
21
21
|
*/
|
|
22
22
|
export declare const asError: (maybeError: unknown) => ErrorFromPayload;
|
|
23
23
|
type SuccessResult<T> = [error: undefined, result: T] & {
|
|
@@ -31,14 +31,14 @@ type FailResult<E extends Error> = [error: E] & {
|
|
|
31
31
|
/**
|
|
32
32
|
* Simple bare-bones discriminated tuple type for a [error, result] pair.
|
|
33
33
|
*
|
|
34
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
34
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#type-resulttuple
|
|
35
35
|
*/
|
|
36
36
|
export type ResultTuple<T, E extends Error = Error> = [error: undefined, result: T] | [error: E];
|
|
37
37
|
/**
|
|
38
38
|
* Discriminated tuple type for a `[error, result]` pair (same as `ResultTuple`)
|
|
39
39
|
* but with named properties `error` and `result` attached for dev convenience.
|
|
40
40
|
*
|
|
41
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
41
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#type-resulttupleobj
|
|
42
42
|
*/
|
|
43
43
|
export type ResultTupleObj<T, E extends Error = Error> = SuccessResult<T> | FailResult<E>;
|
|
44
44
|
/**
|
|
@@ -50,7 +50,7 @@ export type ResultTupleObj<T, E extends Error = Error> = SuccessResult<T> | Fail
|
|
|
50
50
|
*
|
|
51
51
|
* Works on both promises and sync callback functions.
|
|
52
52
|
*
|
|
53
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
53
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultcatch
|
|
54
54
|
*/
|
|
55
55
|
declare function catch_<T, E extends Error = ErrorFromPayload>(promise: Promise<T>): Promise<ResultTupleObj<T, E>>;
|
|
56
56
|
declare function catch_<T, E extends Error = ErrorFromPayload>(callback: () => T): ResultTupleObj<T, E>;
|
|
@@ -58,19 +58,19 @@ declare function catch_<T, E extends Error = ErrorFromPayload>(callback: () => T
|
|
|
58
58
|
* Singleton object with small methods for creating, mapping or handling
|
|
59
59
|
* `ResultTupleObj` instances.
|
|
60
60
|
*
|
|
61
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
61
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#result-singleton
|
|
62
62
|
*/
|
|
63
63
|
export declare const Result: {
|
|
64
64
|
/**
|
|
65
65
|
* Factory for creating a successful `Result.TupleObj`.
|
|
66
66
|
*
|
|
67
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
67
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsuccess
|
|
68
68
|
*/
|
|
69
69
|
Success: <T>(result: T) => SuccessResult<T>;
|
|
70
70
|
/**
|
|
71
71
|
* Factory for creating a failed `Result.TupleObj`.
|
|
72
72
|
*
|
|
73
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
73
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsfail
|
|
74
74
|
*/
|
|
75
75
|
Fail: <E extends Error = Error>(e: unknown) => FailResult<E>;
|
|
76
76
|
catch: typeof catch_;
|
|
@@ -79,14 +79,14 @@ export declare const Result: {
|
|
|
79
79
|
* object, applying a transformation function to the result, but retaining
|
|
80
80
|
* the error as-is.
|
|
81
81
|
*
|
|
82
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
82
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulmap
|
|
83
83
|
*/
|
|
84
84
|
map: <T_1, T2, E_1 extends Error>(result: ResultTuple<T_1, E_1>, mapFn: (resultValue: T_1) => T2) => ResultTupleObj<T2, E_1>;
|
|
85
85
|
/**
|
|
86
86
|
* Unwraps a discriminated [error, result] `Result.Tuple`-like object
|
|
87
87
|
* and throws if there's an error, but returns the result otherwise.
|
|
88
88
|
*
|
|
89
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
89
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulthrow
|
|
90
90
|
*/
|
|
91
91
|
throw: <T_2>(result: ResultTuple<T_2, Error>) => T_2;
|
|
92
92
|
};
|
package/esm/errorhandling.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Error subclass for thrown values that got cought and turned into an actual
|
|
3
3
|
* Error, with the thrown value as the `payload` property.
|
|
4
4
|
*
|
|
5
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
5
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
6
6
|
*/
|
|
7
7
|
export class ErrorFromPayload extends Error {
|
|
8
8
|
constructor(payload) {
|
|
@@ -23,7 +23,7 @@ export class ErrorFromPayload extends Error {
|
|
|
23
23
|
* something else it is wrapped in a new `ErrorFromPayload` instance, and the
|
|
24
24
|
* original value is stored in a `payload`
|
|
25
25
|
*
|
|
26
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
26
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#aserror
|
|
27
27
|
*/
|
|
28
28
|
export const asError = (maybeError) => {
|
|
29
29
|
if (maybeError instanceof Error) {
|
|
@@ -56,19 +56,19 @@ function catch_(something) {
|
|
|
56
56
|
* Singleton object with small methods for creating, mapping or handling
|
|
57
57
|
* `ResultTupleObj` instances.
|
|
58
58
|
*
|
|
59
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
59
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#result-singleton
|
|
60
60
|
*/
|
|
61
61
|
export const Result = {
|
|
62
62
|
/**
|
|
63
63
|
* Factory for creating a successful `Result.TupleObj`.
|
|
64
64
|
*
|
|
65
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
65
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsuccess
|
|
66
66
|
*/
|
|
67
67
|
Success,
|
|
68
68
|
/**
|
|
69
69
|
* Factory for creating a failed `Result.TupleObj`.
|
|
70
70
|
*
|
|
71
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
71
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resultsfail
|
|
72
72
|
*/
|
|
73
73
|
Fail,
|
|
74
74
|
// NOTE: The JSDoc must be placed above the `catch_` function above.
|
|
@@ -78,7 +78,7 @@ export const Result = {
|
|
|
78
78
|
* object, applying a transformation function to the result, but retaining
|
|
79
79
|
* the error as-is.
|
|
80
80
|
*
|
|
81
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
81
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulmap
|
|
82
82
|
*/
|
|
83
83
|
map: (result, mapFn) => {
|
|
84
84
|
const [error, resultValue] = result;
|
|
@@ -91,7 +91,7 @@ export const Result = {
|
|
|
91
91
|
* Unwraps a discriminated [error, result] `Result.Tuple`-like object
|
|
92
92
|
* and throws if there's an error, but returns the result otherwise.
|
|
93
93
|
*
|
|
94
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
94
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#resulthrow
|
|
95
95
|
*/
|
|
96
96
|
throw: (result) => {
|
|
97
97
|
if (result[0]) {
|
package/esm/http.d.ts
CHANGED
|
@@ -154,21 +154,21 @@ type TTLObj = {
|
|
|
154
154
|
/**
|
|
155
155
|
* Configures quick TTL-related settings for a HTTP request object
|
|
156
156
|
*
|
|
157
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
157
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#type-ttlconfig
|
|
158
158
|
*/
|
|
159
159
|
export type TTLConfig = TTL | TTLKeywords | TTLObj;
|
|
160
160
|
/**
|
|
161
161
|
* Converts a `TTL` (max-age) value into seconds. Returns `0` for bad and/or
|
|
162
162
|
* negative input values.
|
|
163
163
|
*
|
|
164
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
164
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#tosec-ttl-helper
|
|
165
165
|
*/
|
|
166
166
|
export declare const toSec: (ttl: TTL) => number;
|
|
167
167
|
/**
|
|
168
168
|
* Converts a `TTL` (duration) value into milliseconds. Returns `0` for bad
|
|
169
169
|
* and/or negative input values.
|
|
170
170
|
*
|
|
171
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
171
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#toms-duration-helper
|
|
172
172
|
*/
|
|
173
173
|
export declare const toMs: (ttl: TTL) => number;
|
|
174
174
|
type ServerResponseStub = Pick<ServerResponse, 'setHeader' | 'getHeader' | 'removeHeader'> & {
|
|
@@ -181,7 +181,7 @@ type ResponseStub = {
|
|
|
181
181
|
* Use this function to quickly set the `Cache-Control` header with a `max-age=`
|
|
182
182
|
* on a HTTP response
|
|
183
183
|
*
|
|
184
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
184
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cachecontrol-helper
|
|
185
185
|
*/
|
|
186
186
|
export declare const cacheControl: (response: ServerResponseStub | ResponseStub | Map<string, string> | {
|
|
187
187
|
res: ServerResponseStub | ResponseStub;
|
|
@@ -191,7 +191,7 @@ export declare const cacheControl: (response: ServerResponseStub | ResponseStub
|
|
|
191
191
|
* situations requiring a `HeadersInit` compatible object.
|
|
192
192
|
*
|
|
193
193
|
* Accepts the same arguments as `cacheControl()`.
|
|
194
|
-
* @see https://github.com/reykjavikcity/webtools/blob/v0.
|
|
194
|
+
* @see https://github.com/reykjavikcity/webtools/blob/v0.2/README.md#cachecontrolheaders-helper
|
|
195
195
|
*/
|
|
196
196
|
export declare const cacheControlHeaders: (ttlCfg: TTLConfig, eTag?: string | number) => Record<string, string>;
|
|
197
197
|
export {};
|