stentor-guards 1.54.6 → 1.54.12

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/lib/index.d.ts CHANGED
@@ -17,3 +17,4 @@ export * from "./isSchedulableResponse";
17
17
  export * from "./isScheduled";
18
18
  export * from "./isTemplatedList";
19
19
  export * from "./isTimeContextual";
20
+ export * from "./request";
package/lib/index.js CHANGED
@@ -33,4 +33,5 @@ __exportStar(require("./isSchedulableResponse"), exports);
33
33
  __exportStar(require("./isScheduled"), exports);
34
34
  __exportStar(require("./isTemplatedList"), exports);
35
35
  __exportStar(require("./isTimeContextual"), exports);
36
+ __exportStar(require("./request"), exports);
36
37
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,wDAAsC;AACtC,qDAAmC;AACnC,6CAA2B;AAC3B,iDAA+B;AAC/B,yDAAuC;AACvC,wDAAsC;AACtC,0DAAwC;AACxC,0DAAwC;AACxC,gDAA8B;AAC9B,oDAAkC;AAClC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,iDAA+B;AAC/B,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,gDAA8B;AAC9B,oDAAkC;AAClC,8CAA4B;AAC5B,wDAAsC;AACtC,qDAAmC;AACnC,6CAA2B;AAC3B,iDAA+B;AAC/B,yDAAuC;AACvC,wDAAsC;AACtC,0DAAwC;AACxC,0DAAwC;AACxC,gDAA8B;AAC9B,oDAAkC;AAClC,qDAAmC;AACnC,4CAA0B"}
@@ -0,0 +1,115 @@
1
+ /*! Copyright (c) 2019, XAPPmedia */
2
+ import { AudioPlayerRequest, InputUnknownRequest, IntentRequest, LaunchRequest, OptionSelectRequest, PermissionRequest, PlaybackControlRequest, Request, RequestDependable, SessionEndedRequest, SignInRequest, SurfaceChangeRequest, SystemDependable, NotificationPermissionRequest } from "stentor-models";
3
+ /**
4
+ * Check if the request is a LaunchRequest
5
+ *
6
+ * @param request
7
+ * @returns
8
+ */
9
+ export declare function isLaunchRequest(request: Request): request is LaunchRequest;
10
+ /**
11
+ * Check if the request is an InputUnknownRequest
12
+ *
13
+ * @param request - Request
14
+ * @returns If the request is an InputUnknown
15
+ */
16
+ export declare function isInputUnknownRequest(request: Request): request is InputUnknownRequest;
17
+ /**
18
+ * Check if the request is a SessionEndedRequest
19
+ *
20
+ * @param request
21
+ * @returns
22
+ */
23
+ export declare function isSessionEndedRequest(request: Request): request is SessionEndedRequest;
24
+ /**
25
+ * Check if the request is a IntentRequest
26
+ *
27
+ * @param request
28
+ * @returns
29
+ */
30
+ export declare function isIntentRequest(request: Request): request is IntentRequest;
31
+ /**
32
+ * Check if it is a PermissionGrant
33
+ *
34
+ * @param {Request} request
35
+ * @returns {request is PermissionGrant}
36
+ */
37
+ export declare function isPermissionRequest(request: Request): request is PermissionRequest;
38
+ /**
39
+ * Check if it is a NotificationPermissionGrant
40
+ *
41
+ * @param {Request} request
42
+ * @returns {request is PermissionGrant}
43
+ */
44
+ export declare function isNotificationPermissionRequest(request: Request): request is NotificationPermissionRequest;
45
+ /**
46
+ * Check if it is a SurfaceChange
47
+ *
48
+ * @param {Request} request
49
+ * @returns {request is SurfaceChangeRequest}
50
+ */
51
+ export declare function isSurfaceRequest(request: Request): request is SurfaceChangeRequest;
52
+ /**
53
+ * Check if it is a Sign
54
+ *
55
+ * @param {Request} request
56
+ * @returns {request is SignInRequest}
57
+ */
58
+ export declare function isSignInRequest(request: Request): request is SignInRequest;
59
+ /**
60
+ * Check if it is a Option Select
61
+ *
62
+ * @param {Request} request
63
+ * @returns {request is OptionSelectRequest}
64
+ */
65
+ export declare function isOptionSelectRequest(request: Request): request is OptionSelectRequest;
66
+ /**
67
+ * Check if the request is a AudioPlayerRequest
68
+ *
69
+ * @param {Request} request
70
+ * @returns {boolean}
71
+ */
72
+ export declare function isAudioPlayerRequest(request: Request): request is AudioPlayerRequest;
73
+ /**
74
+ * Check if the request is a PlaybackControlRequest
75
+ *
76
+ * @param {Request} request
77
+ * @returns {request is PlaybackControlRequest}
78
+ */
79
+ export declare function isPlaybackControlRequest(request: Request): request is PlaybackControlRequest;
80
+ /**
81
+ * Detects if the user is anonymous.
82
+ *
83
+ * Google will make a user anonymous if they don't recognize the voice.
84
+ *
85
+ * @param {Request} request
86
+ * @returns {boolean}
87
+ */
88
+ export declare function isAnonymousUser(request: Request): boolean;
89
+ /**
90
+ * Is the request a new session.
91
+ *
92
+ * @param request
93
+ */
94
+ export declare function isNewSession(request: Request): boolean;
95
+ /**
96
+ * Helper function to determine if the request has a sessionID.
97
+ *
98
+ * @param {Request} request
99
+ * @returns True if the
100
+ */
101
+ export declare function hasSessionId(request: Request): request is InputUnknownRequest | IntentRequest | LaunchRequest | SessionEndedRequest | PermissionRequest;
102
+ /**
103
+ * Guard to check if an object is RequestDependable
104
+ *
105
+ * @param {object} item
106
+ * @returns {item is RequestDependable<T>}
107
+ */
108
+ export declare function isRequestDependable<T extends object>(item: object): item is RequestDependable<T>;
109
+ /**
110
+ * Guard to check if an object is SystemDependable
111
+ *
112
+ * @param {object} item
113
+ * @returns {item is SystemDependable<T>}
114
+ */
115
+ export declare function isSystemDependable<T extends object>(item: object): item is SystemDependable<T>;
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSystemDependable = exports.isRequestDependable = exports.hasSessionId = exports.isNewSession = exports.isAnonymousUser = exports.isPlaybackControlRequest = exports.isAudioPlayerRequest = exports.isOptionSelectRequest = exports.isSignInRequest = exports.isSurfaceRequest = exports.isNotificationPermissionRequest = exports.isPermissionRequest = exports.isIntentRequest = exports.isSessionEndedRequest = exports.isInputUnknownRequest = exports.isLaunchRequest = void 0;
4
+ const stentor_constants_1 = require("stentor-constants");
5
+ /**
6
+ * Check if the request is a LaunchRequest
7
+ *
8
+ * @param request
9
+ * @returns
10
+ */
11
+ function isLaunchRequest(request) {
12
+ return !!request && request.type === stentor_constants_1.LAUNCH_REQUEST_TYPE;
13
+ }
14
+ exports.isLaunchRequest = isLaunchRequest;
15
+ /**
16
+ * Check if the request is an InputUnknownRequest
17
+ *
18
+ * @param request - Request
19
+ * @returns If the request is an InputUnknown
20
+ */
21
+ function isInputUnknownRequest(request) {
22
+ return !!request && request.type === stentor_constants_1.INPUT_UNKNOWN_REQUEST_TYPE;
23
+ }
24
+ exports.isInputUnknownRequest = isInputUnknownRequest;
25
+ /**
26
+ * Check if the request is a SessionEndedRequest
27
+ *
28
+ * @param request
29
+ * @returns
30
+ */
31
+ function isSessionEndedRequest(request) {
32
+ return !!request && request.type === stentor_constants_1.SESSION_ENDED_REQUEST_TYPE;
33
+ }
34
+ exports.isSessionEndedRequest = isSessionEndedRequest;
35
+ /**
36
+ * Check if the request is a IntentRequest
37
+ *
38
+ * @param request
39
+ * @returns
40
+ */
41
+ function isIntentRequest(request) {
42
+ return !!request && request.type === stentor_constants_1.INTENT_REQUEST_TYPE;
43
+ }
44
+ exports.isIntentRequest = isIntentRequest;
45
+ /**
46
+ * Check if it is a PermissionGrant
47
+ *
48
+ * @param {Request} request
49
+ * @returns {request is PermissionGrant}
50
+ */
51
+ function isPermissionRequest(request) {
52
+ return !!request && request.type === stentor_constants_1.PERMISSION_REQUEST_TYPE;
53
+ }
54
+ exports.isPermissionRequest = isPermissionRequest;
55
+ /**
56
+ * Check if it is a NotificationPermissionGrant
57
+ *
58
+ * @param {Request} request
59
+ * @returns {request is PermissionGrant}
60
+ */
61
+ function isNotificationPermissionRequest(request) {
62
+ return !!request && request.type === stentor_constants_1.NOTIFICATION_PERMISSION_REQUEST_TYPE;
63
+ }
64
+ exports.isNotificationPermissionRequest = isNotificationPermissionRequest;
65
+ /**
66
+ * Check if it is a SurfaceChange
67
+ *
68
+ * @param {Request} request
69
+ * @returns {request is SurfaceChangeRequest}
70
+ */
71
+ function isSurfaceRequest(request) {
72
+ return !!request && request.type === stentor_constants_1.SURFACE_CHANGE_REQUEST_TYPE;
73
+ }
74
+ exports.isSurfaceRequest = isSurfaceRequest;
75
+ /**
76
+ * Check if it is a Sign
77
+ *
78
+ * @param {Request} request
79
+ * @returns {request is SignInRequest}
80
+ */
81
+ function isSignInRequest(request) {
82
+ return !!request && request.type === stentor_constants_1.SIGN_IN_REQUEST_TYPE;
83
+ }
84
+ exports.isSignInRequest = isSignInRequest;
85
+ /**
86
+ * Check if it is a Option Select
87
+ *
88
+ * @param {Request} request
89
+ * @returns {request is OptionSelectRequest}
90
+ */
91
+ function isOptionSelectRequest(request) {
92
+ return !!request && request.type === stentor_constants_1.OPTION_SELECT_REQUEST_TYPE;
93
+ }
94
+ exports.isOptionSelectRequest = isOptionSelectRequest;
95
+ /**
96
+ * Check if the request is a AudioPlayerRequest
97
+ *
98
+ * @param {Request} request
99
+ * @returns {boolean}
100
+ */
101
+ function isAudioPlayerRequest(request) {
102
+ return !!request && request.type === stentor_constants_1.AUDIO_PLAYER_REQUEST_TYPE;
103
+ }
104
+ exports.isAudioPlayerRequest = isAudioPlayerRequest;
105
+ /**
106
+ * Check if the request is a PlaybackControlRequest
107
+ *
108
+ * @param {Request} request
109
+ * @returns {request is PlaybackControlRequest}
110
+ */
111
+ function isPlaybackControlRequest(request) {
112
+ return !!request && request.type === stentor_constants_1.PLAYBACK_CONTROL_REQUEST_TYPE;
113
+ }
114
+ exports.isPlaybackControlRequest = isPlaybackControlRequest;
115
+ const EPOCH_ID_BUG_LIMIT_MS = 5000;
116
+ const EPOCH_LENGTH = 13;
117
+ /**
118
+ * Detects if the user is anonymous.
119
+ *
120
+ * Google will make a user anonymous if they don't recognize the voice.
121
+ *
122
+ * @param {Request} request
123
+ * @returns {boolean}
124
+ */
125
+ function isAnonymousUser(request) {
126
+ if (!request) {
127
+ return false;
128
+ }
129
+ let isAnonymousUser = false;
130
+ const userId = request.userId;
131
+ if (typeof userId === "string" && userId.length > 0 && userId.startsWith("1")) {
132
+ const userEpoch = parseInt(userId.substr(0, EPOCH_LENGTH), 10);
133
+ const thisEpoch = new Date().getTime();
134
+ if (thisEpoch - userEpoch < EPOCH_ID_BUG_LIMIT_MS) {
135
+ isAnonymousUser = true;
136
+ }
137
+ }
138
+ return isAnonymousUser;
139
+ }
140
+ exports.isAnonymousUser = isAnonymousUser;
141
+ /**
142
+ * Is the request a new session.
143
+ *
144
+ * @param request
145
+ */
146
+ function isNewSession(request) {
147
+ return request.isNewSession;
148
+ }
149
+ exports.isNewSession = isNewSession;
150
+ /**
151
+ * Helper function to determine if the request has a sessionID.
152
+ *
153
+ * @param {Request} request
154
+ * @returns True if the
155
+ */
156
+ function hasSessionId(request) {
157
+ return (isInputUnknownRequest(request) ||
158
+ isIntentRequest(request) ||
159
+ isLaunchRequest(request) ||
160
+ isSessionEndedRequest(request) ||
161
+ isPermissionRequest(request));
162
+ }
163
+ exports.hasSessionId = hasSessionId;
164
+ /**
165
+ * Guard to check if an object is RequestDependable
166
+ *
167
+ * @param {object} item
168
+ * @returns {item is RequestDependable<T>}
169
+ */
170
+ function isRequestDependable(item) {
171
+ return !!item && item.requestMatch !== undefined;
172
+ }
173
+ exports.isRequestDependable = isRequestDependable;
174
+ /**
175
+ * Guard to check if an object is SystemDependable
176
+ *
177
+ * @param {object} item
178
+ * @returns {item is SystemDependable<T>}
179
+ */
180
+ function isSystemDependable(item) {
181
+ return !!item && item.systemCondition !== undefined;
182
+ }
183
+ exports.isSystemDependable = isSystemDependable;
184
+ //# sourceMappingURL=guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guards.js","sourceRoot":"","sources":["../../src/request/guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /*! Copyright (c) 2022, XAPPmedia */
2
+ export * from "./guards";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /*! Copyright (c) 2022, XAPPmedia */
18
+ __exportStar(require("./guards"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,2CAAyB"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "1.54.6",
7
+ "version": "1.54.12",
8
8
  "description": "Common type guards for 📣 stentor",
9
9
  "types": "lib/index",
10
10
  "main": "lib/index",
@@ -23,12 +23,12 @@
23
23
  "mocha": "9.2.2",
24
24
  "sinon": "13.0.1",
25
25
  "sinon-chai": "3.7.0",
26
- "stentor-models": "1.54.6",
26
+ "stentor-models": "1.54.12",
27
27
  "ts-node": "10.7.0",
28
- "typescript": "4.6.2"
28
+ "typescript": "4.6.3"
29
29
  },
30
30
  "dependencies": {
31
- "stentor-constants": "1.54.6"
31
+ "stentor-constants": "1.54.12"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "stentor-models": "1.x"
@@ -38,5 +38,5 @@
38
38
  "clean": "rm -rf ./lib/* ",
39
39
  "test": "mocha --recursive -r ts-node/register \"./src/**/*.test.ts\""
40
40
  },
41
- "gitHead": "a7abb20cf2d8970d6ccf665d2f502fef3a40b8f0"
41
+ "gitHead": "1a3c457eb1ffaafac05991ede1a4b7e0f3146ab0"
42
42
  }