@adobe/exc-app 1.0.1 → 1.0.4-beta

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 (52) hide show
  1. package/RuntimeConfiguration.d.ts +8 -0
  2. package/appapi.d.ts +1 -0
  3. package/appapi.js +1 -0
  4. package/appapi.js.map +1 -1
  5. package/cache.d.ts +132 -0
  6. package/cache.js +132 -0
  7. package/cache.js.map +1 -0
  8. package/capabilityapi.d.ts +2 -0
  9. package/capabilityapi.js +2 -0
  10. package/capabilityapi.js.map +1 -1
  11. package/coverage/lcov-report/block-navigation.js +79 -0
  12. package/coverage/lcov-report/prettify.js +2 -0
  13. package/coverage/lcov-report/sorter.js +170 -0
  14. package/docs/README.md +1 -0
  15. package/docs/enums/capabilityapi.capabilityids.md +7 -0
  16. package/docs/enums/capabilityapi.capabilitynames.md +7 -0
  17. package/docs/interfaces/cache.cacheapi.md +81 -0
  18. package/docs/interfaces/cache.cacheparameters.md +36 -0
  19. package/docs/interfaces/cache.cachesetparameters.md +65 -0
  20. package/docs/interfaces/network.apolloclientoptions.md +7 -0
  21. package/docs/interfaces/root.modules.md +7 -0
  22. package/docs/interfaces/root.runtimeconfiguration.md +9 -0
  23. package/docs/modules/cache.md +85 -0
  24. package/network/DataContract.d.ts +35 -0
  25. package/network/DataContract.js +3 -0
  26. package/network/DataContract.js.map +1 -0
  27. package/network.d.ts +8 -0
  28. package/network.js +5 -1
  29. package/network.js.map +1 -1
  30. package/package.json +2 -2
  31. package/settings.js +2 -6
  32. package/settings.js.map +1 -1
  33. package/shell.d.ts +2 -0
  34. package/shell.js.map +1 -1
  35. package/src/Global.d.ts +2 -0
  36. package/src/Global.js.map +1 -1
  37. package/tests/cache.test.d.ts +1 -0
  38. package/tests/cache.test.js +66 -0
  39. package/tests/cache.test.js.map +1 -0
  40. package/tests/network.test.d.ts +1 -0
  41. package/tests/network.test.js +77 -0
  42. package/tests/network.test.js.map +1 -0
  43. package/tests/permissions.test.js +1 -5
  44. package/tests/permissions.test.js.map +1 -1
  45. package/tests/pulse.test.js +23 -11
  46. package/tests/pulse.test.js.map +1 -1
  47. package/tests/session.test.d.ts +1 -0
  48. package/tests/session.test.js +64 -0
  49. package/tests/session.test.js.map +1 -0
  50. package/version.d.ts +1 -1
  51. package/version.js +1 -1
  52. package/version.js.map +1 -1
@@ -114,10 +114,18 @@ export interface RuntimeConfiguration {
114
114
  * Solution iframe src url
115
115
  */
116
116
  baseFrameUrl: string;
117
+ /**
118
+ * Base path of the baseUrl property, without tenant or URL context.
119
+ */
120
+ basePath: string;
117
121
  /**
118
122
  * Base URL
119
123
  */
120
124
  baseUrl: string;
125
+ /**
126
+ * Environment specific CDN string.
127
+ */
128
+ cdn: string;
121
129
  /**
122
130
  * List all properties changed in this configuration compared to the previous one sent
123
131
  */
package/appapi.d.ts CHANGED
@@ -74,6 +74,7 @@ export declare enum AppIds {
74
74
  MARKETO_ENGAGE = "marketo",
75
75
  OFFERS = "offers",
76
76
  PEOPLE = "people",
77
+ PERMISSIONS = "permissionsUI",
77
78
  PLACES_SERVICE = "places",
78
79
  PRIMETIME = "primetime",
79
80
  PRIVACY_UI = "privacyui",
package/appapi.js CHANGED
@@ -80,6 +80,7 @@ var AppIds;
80
80
  AppIds["MARKETO_ENGAGE"] = "marketo";
81
81
  AppIds["OFFERS"] = "offers";
82
82
  AppIds["PEOPLE"] = "people";
83
+ AppIds["PERMISSIONS"] = "permissionsUI";
83
84
  AppIds["PLACES_SERVICE"] = "places";
84
85
  AppIds["PRIMETIME"] = "primetime";
85
86
  AppIds["PRIVACY_UI"] = "privacyui";
package/appapi.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"appapi.js","sourceRoot":"","sources":["appapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAiCrC,0DAA0D;AAC1D,IAAY,MA8CX;AA9CD,WAAY,MAAM;IAChB,yBAAe,CAAA;IACf,wCAA8B,CAAA;IAC9B,oDAA0C,CAAA;IAC1C,iDAAuC,CAAA;IACvC,uCAA6B,CAAA;IAC7B,iCAAuB,CAAA;IACvB,2BAAiB,CAAA;IACjB,oCAA0B,CAAA;IAC1B,8CAAoC,CAAA;IACpC,6BAAmB,CAAA;IACnB,0BAAgB,CAAA;IAChB,yCAA+B,CAAA;IAC/B,0CAAgC,CAAA;IAChC,gEAAsD,CAAA;IACtD,0DAAgD,CAAA;IAChD,kDAAwC,CAAA;IACxC,kDAAwC,CAAA;IACxC,sCAA4B,CAAA;IAC5B,+BAAqB,CAAA;IACrB,sCAA4B,CAAA;IAC5B,oDAA0C,CAAA;IAC1C,kDAAwC,CAAA;IACxC,4DAAkD,CAAA;IAClD,gDAAsC,CAAA;IACtC,sDAA4C,CAAA;IAC5C,+BAAqB,CAAA;IACrB,wCAA8B,CAAA;IAC9B,4CAAkC,CAAA;IAClC,8CAAoC,CAAA;IACpC,wCAA8B,CAAA;IAC9B,kCAAwB,CAAA;IACxB,sCAA4B,CAAA;IAC5B,oCAA0B,CAAA;IAC1B,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;IACvB,kCAAwB,CAAA;IACxB,0CAAgC,CAAA;IAChC,6CAAmC,CAAA;IACnC,qCAA2B,CAAA;IAC3B,wDAA8C,CAAA;IAC9C,wCAA8B,CAAA;IAC9B,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACvB,CAAC,EA9CW,MAAM,GAAN,cAAM,KAAN,cAAM,QA8CjB;AAWD,MAAM,MAAM,GAAW;IACrB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"appapi.js","sourceRoot":"","sources":["appapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAiCrC,0DAA0D;AAC1D,IAAY,MA+CX;AA/CD,WAAY,MAAM;IAChB,yBAAe,CAAA;IACf,wCAA8B,CAAA;IAC9B,oDAA0C,CAAA;IAC1C,iDAAuC,CAAA;IACvC,uCAA6B,CAAA;IAC7B,iCAAuB,CAAA;IACvB,2BAAiB,CAAA;IACjB,oCAA0B,CAAA;IAC1B,8CAAoC,CAAA;IACpC,6BAAmB,CAAA;IACnB,0BAAgB,CAAA;IAChB,yCAA+B,CAAA;IAC/B,0CAAgC,CAAA;IAChC,gEAAsD,CAAA;IACtD,0DAAgD,CAAA;IAChD,kDAAwC,CAAA;IACxC,kDAAwC,CAAA;IACxC,sCAA4B,CAAA;IAC5B,+BAAqB,CAAA;IACrB,sCAA4B,CAAA;IAC5B,oDAA0C,CAAA;IAC1C,kDAAwC,CAAA;IACxC,4DAAkD,CAAA;IAClD,gDAAsC,CAAA;IACtC,sDAA4C,CAAA;IAC5C,+BAAqB,CAAA;IACrB,wCAA8B,CAAA;IAC9B,4CAAkC,CAAA;IAClC,8CAAoC,CAAA;IACpC,wCAA8B,CAAA;IAC9B,kCAAwB,CAAA;IACxB,sCAA4B,CAAA;IAC5B,oCAA0B,CAAA;IAC1B,2BAAiB,CAAA;IACjB,2BAAiB,CAAA;IACjB,uCAA6B,CAAA;IAC7B,mCAAyB,CAAA;IACzB,iCAAuB,CAAA;IACvB,kCAAwB,CAAA;IACxB,0CAAgC,CAAA;IAChC,6CAAmC,CAAA;IACnC,qCAA2B,CAAA;IAC3B,wDAA8C,CAAA;IAC9C,wCAA8B,CAAA;IAC9B,2BAAiB,CAAA;IACjB,+BAAqB,CAAA;AACvB,CAAC,EA/CW,MAAM,GAAN,cAAM,KAAN,cAAM,QA+CjB;AAWD,MAAM,MAAM,GAAW;IACrB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF,kBAAe,MAAM,CAAC"}
package/cache.d.ts ADDED
@@ -0,0 +1,132 @@
1
+ /*************************************************************************
2
+ * Copyright 2022 Adobe
3
+ * All Rights Reserved.
4
+ *
5
+ * NOTICE: Adobe permits you to use, modify, and distribute this file in
6
+ * accordance with the terms of the Adobe license agreement accompanying
7
+ * it. If you have received this file from a source other than Adobe,
8
+ * then your use, modification, or distribution of it requires the prior
9
+ * written permission of Adobe.
10
+ **************************************************************************/
11
+ /**
12
+ * @ignore
13
+ */
14
+ export declare enum CacheScope {
15
+ /**
16
+ * Default - Same as USER
17
+ */
18
+ DEFAULT = "user",
19
+ /**
20
+ * Cache data at the IMS Org level.
21
+ */
22
+ ORG = "org",
23
+ /**
24
+ * Cache data at the AEP Sandbox level.
25
+ */
26
+ SANDBOX = "sandbox",
27
+ /**
28
+ * Cache data at the Sub Org level.
29
+ */
30
+ SUBORG = "suborg",
31
+ /**
32
+ * Cache data at the user level.
33
+ */
34
+ USER = "user"
35
+ }
36
+ /**
37
+ * @ignore
38
+ */
39
+ export declare enum CacheTTL {
40
+ /**
41
+ * Disable caching for this value.
42
+ */
43
+ DONT_CACHE = 0,
44
+ /**
45
+ * Cache data for the duration of the current IMS session only
46
+ * Data will not be available once the user has logged in again.
47
+ */
48
+ IMS_SESSION = -1,
49
+ /**
50
+ * Default - One week
51
+ */
52
+ DEFAULT = 604800,
53
+ /**
54
+ * Cache data for an hour.
55
+ */
56
+ HOUR = 3600,
57
+ /**
58
+ * Cache data for a day.
59
+ */
60
+ DAY = 86400,
61
+ /**
62
+ * Cache data for a week.
63
+ */
64
+ WEEK = 604800,
65
+ /**
66
+ * Cache data for a month (30 days actual).
67
+ */
68
+ MONTH = 2592000
69
+ }
70
+ export declare type CacheExpiry = CacheTTL | number;
71
+ /**
72
+ * Input parameters for the Cache get and delete APIs.
73
+ */
74
+ export interface CacheParameters {
75
+ /**
76
+ * Cache key.
77
+ */
78
+ key: string;
79
+ /**
80
+ * Cache scope (Optional - Defaults to user).
81
+ */
82
+ scope?: CacheScope;
83
+ }
84
+ /**
85
+ * Input parameters for the Cache set API.
86
+ */
87
+ export interface CacheSetParameters<T> extends CacheParameters {
88
+ /**
89
+ * Cache expiry. Can be one of the set values defined by CacheTTL, or a numeric cache ttl (in seconds).
90
+ * Optional - Defaults to one week.
91
+ */
92
+ expiry?: CacheExpiry;
93
+ /**
94
+ * Data to cache. Data must be serializable (JSON).
95
+ */
96
+ value: T;
97
+ }
98
+ /**
99
+ * Cache entry (Returned by the get API).
100
+ */
101
+ export declare type CacheEntry<T> = {
102
+ createdAt: number;
103
+ key: string;
104
+ value: T;
105
+ } & ({
106
+ expiresAt: number;
107
+ } | {
108
+ expireBySession: true;
109
+ });
110
+ /**
111
+ * APIs for managing a client side persisted cache.
112
+ */
113
+ export interface CacheApi {
114
+ /**
115
+ * Deletes a value from the cache (If available).
116
+ * @param params Parameters used to identify the cached item to delete.
117
+ */
118
+ delete(params: CacheParameters): Promise<void>;
119
+ /**
120
+ * Gets a value from the cache if one is available.
121
+ * @param params Parameters used to identify the cached item to retrieve.
122
+ * @returns A promise that resolves to the specified value, or undefined if none exist.
123
+ */
124
+ get<T>(params: CacheParameters): Promise<CacheEntry<T> | undefined>;
125
+ /**
126
+ * Stores a value in the cache.
127
+ * @param params Parameters used to identify the cached item to store and control its TTL.
128
+ */
129
+ set<T>(params: CacheSetParameters<T>): Promise<void>;
130
+ }
131
+ declare const cache: CacheApi;
132
+ export default cache;
package/cache.js ADDED
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ /*************************************************************************
3
+ * Copyright 2022 Adobe
4
+ * All Rights Reserved.
5
+ *
6
+ * NOTICE: Adobe permits you to use, modify, and distribute this file in
7
+ * accordance with the terms of the Adobe license agreement accompanying
8
+ * it. If you have received this file from a source other than Adobe,
9
+ * then your use, modification, or distribution of it requires the prior
10
+ * written permission of Adobe.
11
+ **************************************************************************/
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.CacheTTL = exports.CacheScope = void 0;
14
+ /**
15
+ * APIs for managing a client side persisted cache.
16
+ * Unified Shell will store the data against its own domain, which allows data caching
17
+ * even when the actual app runs on a domain which is 3rd party to Unified Shell's.
18
+ *
19
+ * For example, the API will work in Chrome incognito when Unified Shell runs on an adobe.com domain
20
+ * and the embedded applications run on the adobe.net domain.
21
+ *
22
+ * These APIs utilizes the [Browser Cache API](https://developer.mozilla.org/en-US/docs/Web/API/Cache) under the hood and are all run asynchronously.
23
+ *
24
+ * If migrating from Local Storage to Cache API, make sure all the app logic is async first.
25
+ *
26
+ * NOTE: This API should not be used to cache any PII data to comply with Adobe privacy policies.
27
+ *
28
+ * To consume this API, add the following import to your code.
29
+ *
30
+ * ```typescript
31
+ * import cache from '@adobe/exc-app/cache';
32
+ * ```
33
+ *
34
+ * The default export is an object of type [CacheAPI](../interfaces/_cache_.cacheapi.md)
35
+ *
36
+ * API reference: [scroll down](#index)
37
+ *
38
+ * ### Sample code
39
+ *
40
+ * ```typescript
41
+ * import cache, {CacheTTL, CacheScope} from '@adobe/exc-app/cache';
42
+ *
43
+ * // By default, cached data is tied to the user and cached for a week.
44
+ * await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance});
45
+ *
46
+ * // Both scope and expiry can be adjusted.
47
+ * await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.DAY, scope: CacheScope.ORG});
48
+ *
49
+ * // It is also possible to bind cache data to the current IMS session, it will expire when the user logs out.
50
+ * await cache.set<MyType>({key: 'some-cache-key', value: myTypeInstance, expiry: CacheTTL.IMS_SESSION});
51
+ *
52
+ * // Cache get
53
+ * const myData: MyType = await cache.get<MyType>({key: 'some-cache-key'});
54
+ *
55
+ * // Get scope must be identical to the scope used for set - Always use the same scope for both.
56
+ * const myData2: MyType = await cache.get<MyType>({key: 'some-cache-key', scope: CacheScope.ORG});
57
+ *
58
+ * // Cache delete.
59
+ * await cache.delete({key: 'some-cache-key'});
60
+ * ```
61
+ * @packageDocumentation
62
+ * @module cache
63
+ */
64
+ const Global_1 = require("./src/Global");
65
+ /**
66
+ * @ignore
67
+ */
68
+ var CacheScope;
69
+ (function (CacheScope) {
70
+ /**
71
+ * Default - Same as USER
72
+ */
73
+ CacheScope["DEFAULT"] = "user";
74
+ /**
75
+ * Cache data at the IMS Org level.
76
+ */
77
+ CacheScope["ORG"] = "org";
78
+ /**
79
+ * Cache data at the AEP Sandbox level.
80
+ */
81
+ CacheScope["SANDBOX"] = "sandbox";
82
+ /**
83
+ * Cache data at the Sub Org level.
84
+ */
85
+ CacheScope["SUBORG"] = "suborg";
86
+ /**
87
+ * Cache data at the user level.
88
+ */
89
+ CacheScope["USER"] = "user";
90
+ })(CacheScope = exports.CacheScope || (exports.CacheScope = {}));
91
+ /**
92
+ * @ignore
93
+ */
94
+ var CacheTTL;
95
+ (function (CacheTTL) {
96
+ /**
97
+ * Disable caching for this value.
98
+ */
99
+ CacheTTL[CacheTTL["DONT_CACHE"] = 0] = "DONT_CACHE";
100
+ /**
101
+ * Cache data for the duration of the current IMS session only
102
+ * Data will not be available once the user has logged in again.
103
+ */
104
+ CacheTTL[CacheTTL["IMS_SESSION"] = -1] = "IMS_SESSION";
105
+ /**
106
+ * Default - One week
107
+ */
108
+ CacheTTL[CacheTTL["DEFAULT"] = 604800] = "DEFAULT";
109
+ /**
110
+ * Cache data for an hour.
111
+ */
112
+ CacheTTL[CacheTTL["HOUR"] = 3600] = "HOUR";
113
+ /**
114
+ * Cache data for a day.
115
+ */
116
+ CacheTTL[CacheTTL["DAY"] = 86400] = "DAY";
117
+ /**
118
+ * Cache data for a week.
119
+ */
120
+ CacheTTL[CacheTTL["WEEK"] = 604800] = "WEEK";
121
+ /**
122
+ * Cache data for a month (30 days actual).
123
+ */
124
+ CacheTTL[CacheTTL["MONTH"] = 2592000] = "MONTH";
125
+ })(CacheTTL = exports.CacheTTL || (exports.CacheTTL = {}));
126
+ const cache = {
127
+ delete: params => Global_1.getImpl('cache')().delete(params),
128
+ get: params => Global_1.getImpl('cache')().get(params),
129
+ set: params => Global_1.getImpl('cache')().set(params)
130
+ };
131
+ exports.default = cache;
132
+ //# sourceMappingURL=cache.js.map
package/cache.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["cache.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,yCAAqC;AAErC;;GAEG;AACH,IAAY,UAqBX;AArBD,WAAY,UAAU;IACpB;;OAEG;IACH,8BAAgB,CAAA;IAChB;;OAEG;IACH,yBAAW,CAAA;IACX;;OAEG;IACH,iCAAmB,CAAA;IACnB;;OAEG;IACH,+BAAiB,CAAA;IACjB;;OAEG;IACH,2BAAa,CAAA;AACf,CAAC,EArBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAqBrB;AAED;;GAEG;AACH,IAAY,QA8BX;AA9BD,WAAY,QAAQ;IAClB;;OAEG;IACH,mDAAc,CAAA;IACd;;;OAGG;IACH,sDAAgB,CAAA;IAChB;;OAEG;IACH,kDAAuB,CAAA;IACvB;;OAEG;IACH,0CAAW,CAAA;IACX;;OAEG;IACH,yCAAe,CAAA;IACf;;OAEG;IACH,4CAAoB,CAAA;IACpB;;OAEG;IACH,+CAAsB,CAAA;AACxB,CAAC,EA9BW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QA8BnB;AAiED,MAAM,KAAK,GAAa;IACtB,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;IACnD,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7C,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,gBAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC;CAC9C,CAAC;AAEF,kBAAe,KAAK,CAAC"}
@@ -61,6 +61,7 @@ export declare enum CapabilityNames {
61
61
  SETTINGS = "Channels",
62
62
  SOURCE = "Sources",
63
63
  SUBSCRIPTIONS = "Subscription list",
64
+ UNIFIEDTAGS = "UnifiedTags",
64
65
  WORKFLOW = "Workflows"
65
66
  }
66
67
  export declare enum CapabilityIds {
@@ -106,6 +107,7 @@ export declare enum CapabilityIds {
106
107
  SETTINGS = "settings",
107
108
  SOURCE = "source",
108
109
  SUBSCRIPTIONS = "subscriptions",
110
+ UNIFIEDTAGS = "unifiedTags",
109
111
  WORKFLOW = "workflow"
110
112
  }
111
113
  export interface CapabilityApi {
package/capabilityapi.js CHANGED
@@ -87,6 +87,7 @@ var CapabilityNames;
87
87
  CapabilityNames["SETTINGS"] = "Channels";
88
88
  CapabilityNames["SOURCE"] = "Sources";
89
89
  CapabilityNames["SUBSCRIPTIONS"] = "Subscription list";
90
+ CapabilityNames["UNIFIEDTAGS"] = "UnifiedTags";
90
91
  CapabilityNames["WORKFLOW"] = "Workflows";
91
92
  })(CapabilityNames = exports.CapabilityNames || (exports.CapabilityNames = {}));
92
93
  // This list is dynamically generated in preBuild
@@ -134,6 +135,7 @@ var CapabilityIds;
134
135
  CapabilityIds["SETTINGS"] = "settings";
135
136
  CapabilityIds["SOURCE"] = "source";
136
137
  CapabilityIds["SUBSCRIPTIONS"] = "subscriptions";
138
+ CapabilityIds["UNIFIEDTAGS"] = "unifiedTags";
137
139
  CapabilityIds["WORKFLOW"] = "workflow";
138
140
  })(CapabilityIds = exports.CapabilityIds || (exports.CapabilityIds = {}));
139
141
  const capabilityapi = {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityapi.js","sourceRoot":"","sources":["capabilityapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAarC,iDAAiD;AACjD,IAAY,eA4CX;AA5CD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,2CAAwB,CAAA;IACxB,mCAAgB,CAAA;IAChB,2DAAwC,CAAA;IACxC,gDAA6B,CAAA;IAC7B,+CAA4B,CAAA;IAC5B,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,2CAAwB,CAAA;IACxB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,8CAA2B,CAAA;IAC3B,yDAAsC,CAAA;IACtC,+CAA4B,CAAA;IAC5B,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,wCAAqB,CAAA;IACrB,mCAAgB,CAAA;IAChB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,mCAAgB,CAAA;IAChB,+CAA4B,CAAA;IAC5B,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,uCAAoB,CAAA;IACpB,oCAAiB,CAAA;IACjB,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,uCAAoB,CAAA;IACpB,wDAAqC,CAAA;IACrC,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,sDAAmC,CAAA;IACnC,yCAAsB,CAAA;AACxB,CAAC,EA5CW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA4C1B;AAED,iDAAiD;AACjD,IAAY,aA4CX;AA5CD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,wDAAuC,CAAA;IACvC,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,oDAAmC,CAAA;IACnC,4CAA2B,CAAA;IAC3B,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,sDAAqC,CAAA;IACrC,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,gDAA+B,CAAA;IAC/B,sCAAqB,CAAA;AACvB,CAAC,EA5CW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA4CxB;AAUD,MAAM,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACe,CAAC;AAEnB,kBAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"capabilityapi.js","sourceRoot":"","sources":["capabilityapi.ts"],"names":[],"mappings":";AAAA;;;;;;;;;4EAS4E;;;AAE5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,yCAAqC;AAarC,iDAAiD;AACjD,IAAY,eA6CX;AA7CD,WAAY,eAAe;IACzB,8CAA2B,CAAA;IAC3B,2CAAwB,CAAA;IACxB,mCAAgB,CAAA;IAChB,2DAAwC,CAAA;IACxC,gDAA6B,CAAA;IAC7B,+CAA4B,CAAA;IAC5B,oCAAiB,CAAA;IACjB,0CAAuB,CAAA;IACvB,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,2CAAwB,CAAA;IACxB,yCAAsB,CAAA;IACtB,uCAAoB,CAAA;IACpB,8CAA2B,CAAA;IAC3B,yDAAsC,CAAA;IACtC,+CAA4B,CAAA;IAC5B,gCAAa,CAAA;IACb,4CAAyB,CAAA;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;IACrB,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,wCAAqB,CAAA;IACrB,mCAAgB,CAAA;IAChB,4CAAyB,CAAA;IACzB,yCAAsB,CAAA;IACtB,mCAAgB,CAAA;IAChB,+CAA4B,CAAA;IAC5B,sCAAmB,CAAA;IACnB,0CAAuB,CAAA;IACvB,uCAAoB,CAAA;IACpB,oCAAiB,CAAA;IACjB,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,uCAAoB,CAAA;IACpB,wDAAqC,CAAA;IACrC,uCAAoB,CAAA;IACpB,wCAAqB,CAAA;IACrB,qCAAkB,CAAA;IAClB,sDAAmC,CAAA;IACnC,8CAA2B,CAAA;IAC3B,yCAAsB,CAAA;AACxB,CAAC,EA7CW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA6C1B;AAED,iDAAiD;AACjD,IAAY,aA6CX;AA7CD,WAAY,aAAa;IACvB,kDAAiC,CAAA;IACjC,gCAAe,CAAA;IACf,gCAAe,CAAA;IACf,wDAAuC,CAAA;IACvC,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,kCAAiB,CAAA;IACjB,wCAAuB,CAAA;IACvB,sDAAqC,CAAA;IACrC,0CAAyB,CAAA;IACzB,8CAA6B,CAAA;IAC7B,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,4CAA2B,CAAA;IAC3B,oDAAmC,CAAA;IACnC,4CAA2B,CAAA;IAC3B,8BAAa,CAAA;IACb,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;IACf,gDAA+B,CAAA;IAC/B,kCAAiB,CAAA;IACjB,8CAA6B,CAAA;IAC7B,oCAAmB,CAAA;IACnB,gCAAe,CAAA;IACf,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;IACnB,sDAAqC,CAAA;IACrC,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,kCAAiB,CAAA;IACjB,gDAA+B,CAAA;IAC/B,4CAA2B,CAAA;IAC3B,sCAAqB,CAAA;AACvB,CAAC,EA7CW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QA6CxB;AAUD,MAAM,aAAa,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC,EAAE;QACZ,OAAO,gBAAO,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;CACe,CAAC;AAEnB,kBAAe,aAAa,CAAC"}
@@ -0,0 +1,79 @@
1
+ /* eslint-disable */
2
+ var jumpToCode = (function init() {
3
+ // Classes of code we would like to highlight in the file view
4
+ var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
5
+
6
+ // Elements to highlight in the file listing view
7
+ var fileListingElements = ['td.pct.low'];
8
+
9
+ // We don't want to select elements that are direct descendants of another match
10
+ var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
11
+
12
+ // Selecter that finds elements on the page to which we can jump
13
+ var selector =
14
+ fileListingElements.join(', ') +
15
+ ', ' +
16
+ notSelector +
17
+ missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
18
+
19
+ // The NodeList of matching elements
20
+ var missingCoverageElements = document.querySelectorAll(selector);
21
+
22
+ var currentIndex;
23
+
24
+ function toggleClass(index) {
25
+ missingCoverageElements
26
+ .item(currentIndex)
27
+ .classList.remove('highlighted');
28
+ missingCoverageElements.item(index).classList.add('highlighted');
29
+ }
30
+
31
+ function makeCurrent(index) {
32
+ toggleClass(index);
33
+ currentIndex = index;
34
+ missingCoverageElements.item(index).scrollIntoView({
35
+ behavior: 'smooth',
36
+ block: 'center',
37
+ inline: 'center'
38
+ });
39
+ }
40
+
41
+ function goToPrevious() {
42
+ var nextIndex = 0;
43
+ if (typeof currentIndex !== 'number' || currentIndex === 0) {
44
+ nextIndex = missingCoverageElements.length - 1;
45
+ } else if (missingCoverageElements.length > 1) {
46
+ nextIndex = currentIndex - 1;
47
+ }
48
+
49
+ makeCurrent(nextIndex);
50
+ }
51
+
52
+ function goToNext() {
53
+ var nextIndex = 0;
54
+
55
+ if (
56
+ typeof currentIndex === 'number' &&
57
+ currentIndex < missingCoverageElements.length - 1
58
+ ) {
59
+ nextIndex = currentIndex + 1;
60
+ }
61
+
62
+ makeCurrent(nextIndex);
63
+ }
64
+
65
+ return function jump(event) {
66
+ switch (event.which) {
67
+ case 78: // n
68
+ case 74: // j
69
+ goToNext();
70
+ break;
71
+ case 66: // b
72
+ case 75: // k
73
+ case 80: // p
74
+ goToPrevious();
75
+ break;
76
+ }
77
+ };
78
+ })();
79
+ window.addEventListener('keydown', jumpToCode);
@@ -0,0 +1,2 @@
1
+ /* eslint-disable */
2
+ window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
@@ -0,0 +1,170 @@
1
+ /* eslint-disable */
2
+ var addSorting = (function() {
3
+ 'use strict';
4
+ var cols,
5
+ currentSort = {
6
+ index: 0,
7
+ desc: false
8
+ };
9
+
10
+ // returns the summary table element
11
+ function getTable() {
12
+ return document.querySelector('.coverage-summary');
13
+ }
14
+ // returns the thead element of the summary table
15
+ function getTableHeader() {
16
+ return getTable().querySelector('thead tr');
17
+ }
18
+ // returns the tbody element of the summary table
19
+ function getTableBody() {
20
+ return getTable().querySelector('tbody');
21
+ }
22
+ // returns the th element for nth column
23
+ function getNthColumn(n) {
24
+ return getTableHeader().querySelectorAll('th')[n];
25
+ }
26
+
27
+ // loads all columns
28
+ function loadColumns() {
29
+ var colNodes = getTableHeader().querySelectorAll('th'),
30
+ colNode,
31
+ cols = [],
32
+ col,
33
+ i;
34
+
35
+ for (i = 0; i < colNodes.length; i += 1) {
36
+ colNode = colNodes[i];
37
+ col = {
38
+ key: colNode.getAttribute('data-col'),
39
+ sortable: !colNode.getAttribute('data-nosort'),
40
+ type: colNode.getAttribute('data-type') || 'string'
41
+ };
42
+ cols.push(col);
43
+ if (col.sortable) {
44
+ col.defaultDescSort = col.type === 'number';
45
+ colNode.innerHTML =
46
+ colNode.innerHTML + '<span class="sorter"></span>';
47
+ }
48
+ }
49
+ return cols;
50
+ }
51
+ // attaches a data attribute to every tr element with an object
52
+ // of data values keyed by column name
53
+ function loadRowData(tableRow) {
54
+ var tableCols = tableRow.querySelectorAll('td'),
55
+ colNode,
56
+ col,
57
+ data = {},
58
+ i,
59
+ val;
60
+ for (i = 0; i < tableCols.length; i += 1) {
61
+ colNode = tableCols[i];
62
+ col = cols[i];
63
+ val = colNode.getAttribute('data-value');
64
+ if (col.type === 'number') {
65
+ val = Number(val);
66
+ }
67
+ data[col.key] = val;
68
+ }
69
+ return data;
70
+ }
71
+ // loads all row data
72
+ function loadData() {
73
+ var rows = getTableBody().querySelectorAll('tr'),
74
+ i;
75
+
76
+ for (i = 0; i < rows.length; i += 1) {
77
+ rows[i].data = loadRowData(rows[i]);
78
+ }
79
+ }
80
+ // sorts the table using the data for the ith column
81
+ function sortByIndex(index, desc) {
82
+ var key = cols[index].key,
83
+ sorter = function(a, b) {
84
+ a = a.data[key];
85
+ b = b.data[key];
86
+ return a < b ? -1 : a > b ? 1 : 0;
87
+ },
88
+ finalSorter = sorter,
89
+ tableBody = document.querySelector('.coverage-summary tbody'),
90
+ rowNodes = tableBody.querySelectorAll('tr'),
91
+ rows = [],
92
+ i;
93
+
94
+ if (desc) {
95
+ finalSorter = function(a, b) {
96
+ return -1 * sorter(a, b);
97
+ };
98
+ }
99
+
100
+ for (i = 0; i < rowNodes.length; i += 1) {
101
+ rows.push(rowNodes[i]);
102
+ tableBody.removeChild(rowNodes[i]);
103
+ }
104
+
105
+ rows.sort(finalSorter);
106
+
107
+ for (i = 0; i < rows.length; i += 1) {
108
+ tableBody.appendChild(rows[i]);
109
+ }
110
+ }
111
+ // removes sort indicators for current column being sorted
112
+ function removeSortIndicators() {
113
+ var col = getNthColumn(currentSort.index),
114
+ cls = col.className;
115
+
116
+ cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
117
+ col.className = cls;
118
+ }
119
+ // adds sort indicators for current column being sorted
120
+ function addSortIndicators() {
121
+ getNthColumn(currentSort.index).className += currentSort.desc
122
+ ? ' sorted-desc'
123
+ : ' sorted';
124
+ }
125
+ // adds event listeners for all sorter widgets
126
+ function enableUI() {
127
+ var i,
128
+ el,
129
+ ithSorter = function ithSorter(i) {
130
+ var col = cols[i];
131
+
132
+ return function() {
133
+ var desc = col.defaultDescSort;
134
+
135
+ if (currentSort.index === i) {
136
+ desc = !currentSort.desc;
137
+ }
138
+ sortByIndex(i, desc);
139
+ removeSortIndicators();
140
+ currentSort.index = i;
141
+ currentSort.desc = desc;
142
+ addSortIndicators();
143
+ };
144
+ };
145
+ for (i = 0; i < cols.length; i += 1) {
146
+ if (cols[i].sortable) {
147
+ // add the click event handler on the th so users
148
+ // dont have to click on those tiny arrows
149
+ el = getNthColumn(i).querySelector('.sorter').parentElement;
150
+ if (el.addEventListener) {
151
+ el.addEventListener('click', ithSorter(i));
152
+ } else {
153
+ el.attachEvent('onclick', ithSorter(i));
154
+ }
155
+ }
156
+ }
157
+ }
158
+ // adds sorting functionality to the UI
159
+ return function() {
160
+ if (!getTable()) {
161
+ return;
162
+ }
163
+ cols = loadColumns();
164
+ loadData();
165
+ addSortIndicators();
166
+ enableUI();
167
+ };
168
+ })();
169
+
170
+ window.addEventListener('load', addSorting);
package/docs/README.md CHANGED
@@ -9,6 +9,7 @@
9
9
  ### Modules
10
10
 
11
11
  * [appapi](modules/appapi.md)
12
+ * [cache](modules/cache.md)
12
13
  * [capabilityapi](modules/capabilityapi.md)
13
14
  * [helpCenter](modules/helpcenter.md)
14
15
  * [ims](modules/ims.md)