@clicktap/state 0.1.2 → 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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clicktap/state",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "private": false,
5
5
  "author": "Clicktap",
6
6
  "description": "A state management library for Clicktap reference frontend.",
@@ -11,23 +11,24 @@
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
14
- "type": "commonjs",
14
+ "type": "module",
15
15
  "dependencies": {
16
- "cookie": "^0.5.0"
16
+ "cookie": "^0.5.0",
17
+ "axios": "^1.5.0"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@types/cookie": "^0.5.1",
20
21
  "@types/react": "18.0.28"
21
22
  },
22
23
  "peerDependencies": {
23
- "@xstate/immer": "^0.3.3",
24
- "@xstate/inspect": "^0.8.0",
25
- "@xstate/react": "^3.2.2",
26
24
  "next": "^13.4.6",
27
25
  "react": "^18.2.0",
28
26
  "xstate": "^4.38.1",
29
- "tslib": "2.4.0"
27
+ "@xstate/immer": "^0.3.3",
28
+ "@xstate/inspect": "^0.8.0",
29
+ "@xstate/react": "^3.2.2"
30
30
  },
31
- "main": "./src/index.js",
31
+ "module": "./index.js",
32
+ "main": "./index.js",
32
33
  "types": "./src/index.d.ts"
33
34
  }
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthProvider = exports.getAuth = exports.useUser = exports.useAuth = exports.AuthContext = void 0;
4
- const tslib_1 = require("tslib");
5
- const react_1 = require("react");
6
- const xstate_1 = require("xstate");
7
- const cookie_1 = tslib_1.__importDefault(require("cookie"));
8
- const auth_1 = require("./auth");
9
- // removing dependencies on next, this should work regardless of platform
10
- // import type { NextPageContext } from 'next';
11
- // import { useRouter } from 'next/router';
12
- exports.AuthContext = (0, react_1.createContext)({});
13
- const useAuth = () => {
14
- // console.log('useAuth');
15
- // console.log(useContext(AuthContext).getSnapshot().context);
16
- return (0, react_1.useContext)(exports.AuthContext);
17
- };
18
- exports.useAuth = useAuth;
19
- const useUser = () => {
20
- return (0, react_1.useContext)(exports.AuthContext).getSnapshot().context.user;
21
- };
22
- exports.useUser = useUser;
23
- /**
24
- * this will run on the server side as part of app.getInitialProps
25
- * @todo is it possible to share state from client to server? headers? cookies?
26
- */
27
- const getAuth = (context, options
28
- // eslint-disable-next-line @typescript-eslint/require-await
29
- ) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
30
- var _a;
31
- if (typeof window !== 'undefined') {
32
- // eslint-disable-next-line no-console
33
- console.warn('App.getInitialProps::getAuth should not be run on the frontend. You are probably missing getServerSideProps in your page.');
34
- return (0, xstate_1.interpret)(auth_1.authMachine, { devTools: options.devTools }).start();
35
- }
36
- const cookies = cookie_1.default.parse(((_a = context === null || context === void 0 ? void 0 : context.req) === null || _a === void 0 ? void 0 : _a.headers) && context.req.headers.cookie
37
- ? context.req.headers.cookie
38
- : '');
39
- if (typeof cookies['refresh_token'] !== 'undefined') {
40
- const authContext = Object.assign(Object.assign({}, auth_1.authMachine.initialState.context), { refreshToken: cookies['refresh_token'], endpoints: Object.assign({}, options.endpoints) });
41
- return (0, xstate_1.interpret)(auth_1.authMachine.withContext(authContext), {
42
- devTools: options.devTools,
43
- }).start();
44
- }
45
- return (0, xstate_1.interpret)(auth_1.authMachine, { devTools: options.devTools }).start();
46
- });
47
- exports.getAuth = getAuth;
48
- function AuthProvider({ children, service, }) {
49
- // console.log('AuthProvider::state');
50
- // console.log(state.context);
51
- // let authService = interpret(authMachine, { devTools: options.devTools }).start(state);
52
- // console.log('AuthProvider::authService');
53
- // console.log(authService.getSnapshot().context);
54
- return (<exports.AuthContext.Provider value={service}>{children}</exports.AuthContext.Provider>);
55
- }
56
- exports.AuthProvider = AuthProvider;
57
- //# sourceMappingURL=AuthProvider.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AuthProvider.jsx","sourceRoot":"","sources":["../../../../../libs/state/src/auth/AuthProvider.tsx"],"names":[],"mappings":";;;;AAAA,iCAAkD;AAClD,mCAAmC;AAEnC,4DAA4B;AAG5B,iCAAqC;AAErC,yEAAyE;AACzE,+CAA+C;AAC/C,2CAA2C;AAE9B,QAAA,WAAW,GAAG,IAAA,qBAAa,EACtC,EAAyC,CAC1C,CAAC;AAEK,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,0BAA0B;IAC1B,8DAA8D;IAC9D,OAAO,IAAA,kBAAU,EAAC,mBAAW,CAAC,CAAC;AACjC,CAAC,CAAC;AAJW,QAAA,OAAO,WAIlB;AAEK,MAAM,OAAO,GAAG,GAAG,EAAE;IAC1B,OAAO,IAAA,kBAAU,EAAC,mBAAW,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5D,CAAC,CAAC;AAFW,QAAA,OAAO,WAElB;AAYF;;;GAGG;AACI,MAAM,OAAO,GAAG,CACrB,OAAwB,EACxB,OAAoB;AACpB,4DAA4D;EAC5D,EAAE;;IACF,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,2HAA2H,CAC5H,CAAC;QACF,OAAO,IAAA,kBAAS,EAAC,kBAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;KACvE;IAED,MAAM,OAAO,GAAG,gBAAM,CAAC,KAAK,CAC1B,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,0CAAE,OAAO,KAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;QACjD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM;QAC5B,CAAC,CAAC,EAAE,CACP,CAAC;IACF,IAAI,OAAO,OAAO,CAAC,eAAe,CAAC,KAAK,WAAW,EAAE;QACnD,MAAM,WAAW,mCACZ,kBAAW,CAAC,YAAY,CAAC,OAAO,KACnC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,EACtC,SAAS,oBAAO,OAAO,CAAC,SAAS,IAClC,CAAC;QACF,OAAO,IAAA,kBAAS,EAAC,kBAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC,KAAK,EAAE,CAAC;KACZ;IAED,OAAO,IAAA,kBAAS,EAAC,kBAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;AACxE,CAAC,CAAA,CAAC;AA9BW,QAAA,OAAO,WA8BlB;AAWF,SAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,OAAO,GAGJ;IACH,sCAAsC;IACtC,8BAA8B;IAC9B,yFAAyF;IACzF,4CAA4C;IAC5C,kDAAkD;IAElD,OAAO,CACL,CAAC,mBAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,mBAAW,CAAC,QAAQ,CAAC,CACxE,CAAC;AACJ,CAAC;AAfD,oCAeC"}
package/src/auth/auth.js DELETED
@@ -1,291 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.authMachine = void 0;
4
- const tslib_1 = require("tslib");
5
- const xstate_1 = require("xstate");
6
- const immer_1 = require("@xstate/immer");
7
- function request(url, options) {
8
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
9
- const response = yield fetch(url, options);
10
- if (response.status === 200) {
11
- return response.json();
12
- }
13
- return Promise.resolve({
14
- message: response.statusText,
15
- success: false,
16
- });
17
- });
18
- }
19
- exports.authMachine =
20
- /** @xstate-layout N4IgpgJg5mDOIC5QEMCuAXAFgOjVsAdugJYDGyJBUAxBAPYFjbEEBudA1k3jj4SeUpQELdoOIMA2gAYAujNmJQABzqxiJBkpAAPRAEZ9Adn3YAbABYATAGYr1gKwWLDoxYA0IAJ6JbATmwADkCXPyszK0CzPyijAF84zx5cDEx+MgoWGjAAJxy6HOxlABsKADMCgFsUrBq0ogyhETY6cSk5BW1VdU0CbT0EfWkncysHYelba0DXTx8EBzNTCxDXPzMbaTCjQISk1OxUAj4G8SpaBiZRTm4Do5OBTKpmsUz2+TkutQ0JPqRdRAAWkMAUiNkCxjMO02+gsNjmvkCVmw+hsRnRjiM0hMexAyXuqXSZ2yeQKRVK6AqOWq+OOhNOT2E1zaBAUnX+3R+Wn+A2R0RsmwhRjMUKsRgcSIRCCR2Fs6MCYSmDn0wVxyRyYDKGtgmCyF0YzBaXDq2A1WrguuezLerI6nw5316-UQRhi2BiQ2kk2VkylUSCfnB9iWwSxYrVBzN2stJPyhRK5SqJqjFqyL1aNrZ9pUjt+zoQFn0Zmw0gs6Ks0n0gZMMSlwOx2ELTj80jMTisYvCEdqxToUBgEAA8hhqAAZQcAcQAkgA5dk5np5nm+KElsyBcWWQzhMZSizSQLYVzbhyB8F+Pz6bs4Xv9yBTghjyeDgCqABV5yBOU7l9KjDYghmQJhgVPwHArKw6yrYswKWf8HE2cYJWvbBbwHB9qB0WB0AobgynQXIAAozC9L0AEpqGSND71tRQHUXblQAGKJkVdZwqwlMIokCKCjGwYUYThf8SLRCwEkSEACDoCA4G0HgvgYv4mKBIs+LBIUoUCQT4W8IFIgsRtFmMMskMvKwUIeRosgUrklIBQZKwA1soWccJXU2PwpVEktjBmdcIhiZwUIJfAGSEGyf2UhBAQM0N1gPJYoVbHYoJCHyTCiLYYnXcMJPVTVo2s+jbPzawAkMSZwmxBUJX0KUxUPOV3LYy8tjEvKDmoocMAipcopsAJTzRNY0VhWEpVcaQSy0sVxjGFs0RQrqH16xj7MMOFGxWRYBXBRYeN0hA3XsINnBCfcLyvcSgA */
21
- (0, xstate_1.createMachine)({
22
- context: {
23
- // id: '',
24
- user: null,
25
- accessToken: '',
26
- refreshToken: '',
27
- /**
28
- * If unauthenticating fails, we need a way to ignore the refresh token on subsequent access token refresh.
29
- * This would be set to true done/error of unauthenticate service, and false on done of authenticate service
30
- */
31
- ignoreRefreshToken: false,
32
- endpoints: {
33
- login: '',
34
- logout: '',
35
- refresh: '',
36
- ssrRefresh: '',
37
- },
38
- },
39
- predictableActionArguments: true,
40
- id: 'auth',
41
- initial: 'refreshing',
42
- states: {
43
- authenticating: {
44
- invoke: {
45
- src: 'authenticate',
46
- onDone: [
47
- {
48
- actions: 'setUserContext',
49
- target: 'loggedIn',
50
- },
51
- ],
52
- onError: [
53
- {
54
- target: 'loggedOut',
55
- },
56
- ],
57
- },
58
- },
59
- unauthenticating: {
60
- invoke: {
61
- src: 'unauthenticate',
62
- onDone: [
63
- {
64
- actions: 'unsetUserContext',
65
- target: 'loggedOut',
66
- },
67
- ],
68
- onError: [
69
- {
70
- actions: ['unsetUserContext', 'setIgnoreRefreshToken'],
71
- target: 'loggedOut',
72
- },
73
- ],
74
- },
75
- },
76
- refreshing: {
77
- invoke: {
78
- src: 'refreshAccessToken',
79
- onDone: [
80
- {
81
- actions: ['unsetRefreshToken', 'setAccessToken'],
82
- target: 'loggedIn',
83
- },
84
- ],
85
- onError: [
86
- {
87
- actions: 'unsetRefreshToken',
88
- target: 'unauthenticating',
89
- },
90
- ],
91
- },
92
- },
93
- loggedOut: {
94
- on: {
95
- LOGIN: {
96
- target: 'authenticating',
97
- },
98
- },
99
- },
100
- loggedIn: {
101
- after: {
102
- '60000': {
103
- cond: () => typeof window !== 'undefined',
104
- target: 'refreshing',
105
- },
106
- },
107
- // entry: ['unsetUserContext'],
108
- on: {
109
- LOGOUT: {
110
- target: 'unauthenticating',
111
- },
112
- },
113
- },
114
- },
115
- }, {
116
- actions: {
117
- // setAccessToken: assign<UserContext, RefreshTokenEvent>((context, event) => {
118
- // context.accessToken = event.accessToken;
119
- // }),
120
- setUserContext: (0, immer_1.assign)((context, event) => {
121
- // event.type - done.invoke.auth.authenticating:invocation[0]
122
- if (event.data.type !== 'AUTHENTICATE_SUCCESS')
123
- return;
124
- // context.user = event.data.user;
125
- context.accessToken = event.data.accessToken;
126
- context.ignoreRefreshToken = false;
127
- }),
128
- unsetUserContext: (0, immer_1.assign)((context) => {
129
- Object.assign(context, exports.authMachine.initialState.context);
130
- // context = authMachine.initialState.context;
131
- }),
132
- setAccessToken: (0, immer_1.assign)((context, event) => {
133
- if (event.data.type !== 'REFRESH_TOKEN_SUCCESS')
134
- return; // is this really necessary?
135
- context.accessToken = event.data.accessToken;
136
- context.ignoreRefreshToken = false;
137
- }),
138
- unsetRefreshToken: (0, immer_1.assign)((context, event) => {
139
- if (event.data.type !== 'REFRESH_TOKEN_SUCCESS')
140
- return; // is this really necessary?
141
- context.refreshToken = '';
142
- }),
143
- setIgnoreRefreshToken: (0, immer_1.assign)((context) => {
144
- context.ignoreRefreshToken = true;
145
- }),
146
- },
147
- services: {
148
- refreshAccessToken: (context) => () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
149
- // eslint-disable-next-line no-console
150
- // console.log(
151
- // 'refresh access token (%s)',
152
- // typeof window === 'undefined' ? 'server' : 'client'
153
- // );
154
- // eslint-disable-next-line no-console
155
- // console.log('--------------------');
156
- let response;
157
- if (typeof window === 'undefined') {
158
- // server
159
- // eslint-disable-next-line no-console
160
- // console.log('in server refreshAccessToken');
161
- // eslint-disable-next-line no-console
162
- // console.log(context.refreshToken);
163
- if (context.refreshToken === '')
164
- throw new Error('Unauthorized.');
165
- try {
166
- response = yield request('http://nginx:5210/auth/refresh', {
167
- method: 'POST',
168
- mode: 'cors',
169
- credentials: 'include',
170
- headers: {
171
- Cookie: `refresh_token=${context.refreshToken}`,
172
- 'Content-Type': 'application/json',
173
- },
174
- body: JSON.stringify({
175
- grant_type: 'refresh_token',
176
- // client_id: 'default',
177
- // client_secret: 'Password123!',
178
- // scope: 'default',
179
- }).toString(),
180
- });
181
- const data = response;
182
- if (typeof data.accessToken === 'undefined') {
183
- throw new Error('Unauthorized.');
184
- }
185
- return {
186
- type: 'REFRESH_TOKEN_SUCCESS',
187
- accessToken: data.accessToken,
188
- };
189
- }
190
- catch (err) {
191
- // eslint-disable-next-line no-console
192
- // console.log(err);
193
- throw new Error('Could not complete refresh request (server)');
194
- }
195
- }
196
- else {
197
- // client
198
- response = yield request('https://middleware-clicktap.local-rmgmedia.com/auth/refresh', {
199
- method: 'POST',
200
- mode: 'cors',
201
- credentials: 'include',
202
- headers: {
203
- 'Content-Type': 'application/json',
204
- },
205
- body: JSON.stringify({
206
- grant_type: 'refresh_token',
207
- // client_id: 'default',
208
- // client_secret: 'Password123!',
209
- // scope: 'default',
210
- }).toString(),
211
- });
212
- const data = response;
213
- if (typeof data.accessToken === 'undefined') {
214
- throw new Error('Unauthorized.');
215
- }
216
- return {
217
- type: 'REFRESH_TOKEN_SUCCESS',
218
- accessToken: data.accessToken,
219
- };
220
- }
221
- }),
222
- authenticate: (context, event) => () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
223
- var _a, _b;
224
- const e = event; // workaround to typescript not allowing casting in parameter
225
- if (e.type !== 'LOGIN') {
226
- throw new Error(`Authenticate can only be called for "LOGIN" event type. Event caller: ${String(e.type)}`);
227
- }
228
- const response = yield request('https://middleware-clicktap.local-rmgmedia.com/auth/login', {
229
- method: 'POST',
230
- mode: 'cors',
231
- credentials: 'include',
232
- headers: {
233
- 'Content-Type': 'application/json',
234
- },
235
- body: JSON.stringify({
236
- username: e.username,
237
- password: e.password,
238
- // grant_type: 'password',
239
- // client_id: 'default',
240
- // client_secret: 'Password123!',
241
- // scope: 'default',
242
- }).toString(),
243
- });
244
- /** @todo do we need to handle different status codes here...like what if the service is down? */
245
- const data = response;
246
- if (typeof data.accessToken === 'undefined') {
247
- throw new Error((_b = (_a = data.message) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : 'Sign in failed. Please try again.');
248
- }
249
- return {
250
- type: 'AUTHENTICATE_SUCCESS',
251
- // user: data.user,
252
- accessToken: data.accessToken,
253
- };
254
- // /** @todo how to call immer assign from inside invoke here to update context? */
255
- // console.log(data);
256
- // console.log(event);
257
- }),
258
- unauthenticate: (context) => () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
259
- // const response = await fetch(
260
- yield fetch('https://middleware-clicktap.local-rmgmedia.com/auth/logout', {
261
- method: 'POST',
262
- mode: 'cors',
263
- credentials: 'include',
264
- // headers: {
265
- // 'Access-Control-Allow-Origin': 'https://middleware-clicktap.local-rmgmedia.com',
266
- // 'Access-Control-Allow-Credentials': 'true',
267
- // },
268
- });
269
- /** @todo do we need to handle different status codes here...like what if the service is down? */
270
- // const data = await response.json();
271
- return { type: 'UNAUTHENTICATE' };
272
- // if (!data.success) {
273
- // throw new Error(data.message ?? 'Sign in failed. Please try again.');
274
- // }
275
- // return {
276
- // type: 'AUTHENTICATE_SUCCESS',
277
- // user: data.user,
278
- // accessToken: data.accessToken,
279
- // };
280
- }),
281
- },
282
- // doesn't make sense in the case where you have an access token that is about to expire
283
- // and the loggedIn state won't fire another refresh for 15 min
284
- //
285
- // guards: {
286
- // checkIfLoggedIn: (context, _event) => {
287
- // if (context.user) return true;
288
- // },
289
- // },
290
- });
291
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../libs/state/src/auth/auth.ts"],"names":[],"mappings":"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"}
package/src/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./auth/auth"), exports);
5
- tslib_1.__exportStar(require("./auth/AuthProvider"), exports);
6
- tslib_1.__exportStar(require("./toast/toast"), exports);
7
- tslib_1.__exportStar(require("./toast/ToastProvider"), exports);
8
- tslib_1.__exportStar(require("./toast/timer"), exports);
9
- //# sourceMappingURL=index.js.map
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/state/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B;AAC5B,8DAAoC;AACpC,wDAA8B;AAC9B,gEAAsC;AACtC,wDAA8B"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ToastProvider = exports.useToast = exports.ToastContext = void 0;
4
- const react_1 = require("react");
5
- exports.ToastContext = (0, react_1.createContext)({});
6
- const useToast = () => {
7
- return (0, react_1.useContext)(exports.ToastContext);
8
- };
9
- exports.useToast = useToast;
10
- function ToastProvider({ children, service, }) {
11
- // const toastService = interpret(toastMachine, {
12
- // devTools: options.devTools,
13
- // }).start(state);
14
- // toastService.subscribe((s) => {
15
- // setState(s);
16
- // });
17
- return (<exports.ToastContext.Provider value={service}>{children}</exports.ToastContext.Provider>);
18
- }
19
- exports.ToastProvider = ToastProvider;
20
- //# sourceMappingURL=ToastProvider.jsx.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToastProvider.jsx","sourceRoot":"","sources":["../../../../../libs/state/src/toast/ToastProvider.tsx"],"names":[],"mappings":";;;AAAA,iCAAkD;AAKrC,QAAA,YAAY,GAAG,IAAA,qBAAa,EACvC,EAA0C,CAC3C,CAAC;AAEK,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,OAAO,IAAA,kBAAU,EAAC,oBAAY,CAAC,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAcF,SAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAO,GAIJ;IACH,iDAAiD;IACjD,gCAAgC;IAChC,mBAAmB;IAEnB,kCAAkC;IAClC,iBAAiB;IACjB,MAAM;IAEN,OAAO,CACL,CAAC,oBAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,oBAAY,CAAC,QAAQ,CAAC,CAC1E,CAAC;AACJ,CAAC;AAlBD,sCAkBC"}
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.timerMachine = void 0;
4
- const xstate_1 = require("xstate");
5
- const immer_1 = require("@xstate/immer");
6
- exports.timerMachine =
7
- /** @xstate-layout N4IgpgJg5mDOIC5QBcCWBbMAnAdABwEMBXWSAYgCUBRAZQFUBZKgfQBUBJJigbQAYBdRKDwB7WKjQiAdkJAAPRAFoAjADYATDmUBOXQA5tAZmV69AFgDsq1QBoQAT0SHehnAFYAvh7tpMuLERSUqhSUGQcAMIA0nyCSCCi4pIy8QoIJqo4qnoWbnaOCGZmmaq8Zbyqyi5uym6qXj4Y2DgBQSFhAAoAgnQ0LBxcsbKJEqjSsmlVbjimFmZ6agZmbsbq+U4u7g0gvs2twaFkQ-EjyRNObrxZOXkOiGbKFjjq5WbqFurFvNpmXt4gUhEEDgsl2WGGYlG41SSnUVS0um0BmMpks1nW6Tcmk8-zB+GIpAgEKSYxSoDSvAxn142zx+3axKhZPkiEpdwQhjmW1xTVwAGMROg8AAbMDISCMs4whBsgpuOp-DxAA */
8
- (0, xstate_1.createMachine)({
9
- id: 'timer',
10
- initial: 'running',
11
- context: {
12
- elapsed: 0,
13
- duration: 3000,
14
- interval: 100,
15
- intervalId: null,
16
- },
17
- states: {
18
- paused: {
19
- on: {
20
- // START_TIMER: {
21
- // target: 'running',
22
- // cond: (context) => context.elapsed < context.duration,
23
- // },
24
- RESUME_TIMER: {
25
- target: 'running',
26
- cond: (context) => context.elapsed < context.duration,
27
- },
28
- },
29
- },
30
- running: {
31
- invoke: {
32
- src: (context) => (send) => {
33
- // eslint-disable-next-line no-console
34
- // console.log('context.interval: ', context.interval);
35
- const interval = setInterval(() => {
36
- send('TICK');
37
- }, context.interval);
38
- return () => {
39
- clearInterval(interval);
40
- };
41
- },
42
- },
43
- always: [
44
- {
45
- target: 'completed',
46
- cond: (context) => {
47
- return context.elapsed >= context.duration;
48
- },
49
- },
50
- ],
51
- on: {
52
- TICK: {
53
- actions: (0, immer_1.assign)((context, event) => {
54
- if (event.type !== 'TICK')
55
- return;
56
- context.elapsed += context.interval;
57
- // eslint-disable-next-line no-console
58
- // console.log(
59
- // 'elapsed: %d | interval: %d',
60
- // context.elapsed,
61
- // context.interval
62
- // );
63
- }),
64
- },
65
- PAUSE_TIMER: { target: 'paused' },
66
- },
67
- },
68
- completed: {
69
- type: 'final',
70
- },
71
- },
72
- });
73
- exports.default = exports.timerMachine;
74
- //# sourceMappingURL=timer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timer.js","sourceRoot":"","sources":["../../../../../libs/state/src/toast/timer.ts"],"names":[],"mappings":";;;AAAA,mCAAuC;AACvC,yCAAuC;AAwC1B,QAAA,YAAY;AACvB,6cAA6c;AAC7c,IAAA,sBAAa,EAA4B;IACvC,EAAE,EAAE,OAAO;IACX,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE;QACP,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,IAAI;KACjB;IACD,MAAM,EAAE;QACN,MAAM,EAAE;YACN,EAAE,EAAE;gBACF,iBAAiB;gBACjB,uBAAuB;gBACvB,2DAA2D;gBAC3D,KAAK;gBACL,YAAY,EAAE;oBACZ,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ;iBACtD;aACF;SACF;QACD,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;oBACzB,sCAAsC;oBACtC,uDAAuD;oBACvD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;wBAChC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACf,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACrB,OAAO,GAAG,EAAE;wBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC1B,CAAC,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN;oBACE,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;wBAChB,OAAO,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;oBAC7C,CAAC;iBACF;aACF;YACD,EAAE,EAAE;gBACF,IAAI,EAAE;oBACJ,OAAO,EAAE,IAAA,cAAM,EAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;wBACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;4BAAE,OAAO;wBAClC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;wBACpC,sCAAsC;wBACtC,eAAe;wBACf,kCAAkC;wBAClC,qBAAqB;wBACrB,qBAAqB;wBACrB,KAAK;oBACP,CAAC,CAAC;iBACH;gBACD,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;aAClC;SACF;QACD,SAAS,EAAE;YACT,IAAI,EAAE,OAAO;SACd;KACF;CACF,CAAC,CAAC;AAEL,kBAAe,oBAAY,CAAC"}