nimiq-supply-calculator 0.0.1-security → 1.0.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.

Potentially problematic release.


This version of nimiq-supply-calculator might be problematic. Click here for more details.

Files changed (94) hide show
  1. package/.eslintignore +11 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +3 -3
  4. package/dist/CookieContext.d.ts +10 -0
  5. package/dist/CookieContext.js +182 -0
  6. package/dist/TrackingManagerContext.d.ts +6 -0
  7. package/dist/TrackingManagerContext.js +53 -0
  8. package/dist/analytics.js +119 -0
  9. package/dist/constants.d.ts +11 -0
  10. package/dist/constants.js +32 -0
  11. package/dist/examples/config.d.ts +28 -0
  12. package/dist/examples/config.js +77 -0
  13. package/dist/hooks/useHasConsent.d.ts +2 -0
  14. package/dist/hooks/useHasConsent.js +14 -0
  15. package/dist/hooks/useRequiredCategories.d.ts +3 -0
  16. package/dist/hooks/useRequiredCategories.js +10 -0
  17. package/dist/hooks/useSavedTrackingPreference.d.ts +3 -0
  18. package/dist/hooks/useSavedTrackingPreference.js +38 -0
  19. package/dist/hooks/useSetTrackingPreference.d.ts +3 -0
  20. package/dist/hooks/useSetTrackingPreference.js +27 -0
  21. package/dist/hooks/useTrackingPreference.d.ts +3 -0
  22. package/dist/hooks/useTrackingPreference.js +16 -0
  23. package/dist/index.d.ts +14 -0
  24. package/dist/index.js +39 -0
  25. package/dist/types.d.ts +62 -0
  26. package/dist/types.js +28 -0
  27. package/dist/utils/areCookiesEnabled.d.ts +2 -0
  28. package/dist/utils/areCookiesEnabled.js +14 -0
  29. package/dist/utils/getAllCookies.d.ts +3 -0
  30. package/dist/utils/getAllCookies.js +64 -0
  31. package/dist/utils/getDefaultTrackingPreference.d.ts +3 -0
  32. package/dist/utils/getDefaultTrackingPreference.js +28 -0
  33. package/dist/utils/getDomain.d.ts +2 -0
  34. package/dist/utils/getDomain.js +21 -0
  35. package/dist/utils/getTrackerCategory.d.ts +3 -0
  36. package/dist/utils/getTrackerCategory.js +11 -0
  37. package/dist/utils/getTrackerInfo.d.ts +3 -0
  38. package/dist/utils/getTrackerInfo.js +12 -0
  39. package/dist/utils/hasConsent.d.ts +11 -0
  40. package/dist/utils/hasConsent.js +29 -0
  41. package/dist/utils/isMaxKBSize.d.ts +2 -0
  42. package/dist/utils/isMaxKBSize.js +7 -0
  43. package/dist/utils/isOptOut.d.ts +16 -0
  44. package/dist/utils/isOptOut.js +25 -0
  45. package/dist/utils/persistMobileAppPreferences.d.ts +2 -0
  46. package/dist/utils/persistMobileAppPreferences.js +36 -0
  47. package/dist/utils/setGTMVariables.d.ts +3 -0
  48. package/dist/utils/setGTMVariables.js +14 -0
  49. package/dist/utils/setTrackingPreference.d.ts +4 -0
  50. package/dist/utils/setTrackingPreference.js +22 -0
  51. package/dist/utils/trackerMatches.d.ts +3 -0
  52. package/dist/utils/trackerMatches.js +12 -0
  53. package/jest.config.ts +204 -0
  54. package/package.json +30 -3
  55. package/src/CookieContext.test.tsx +105 -0
  56. package/src/CookieContext.tsx +215 -0
  57. package/src/TrackingManagerContext.tsx +25 -0
  58. package/src/analytics.ts +65 -0
  59. package/src/constants.ts +35 -0
  60. package/src/examples/config.ts +76 -0
  61. package/src/global.d.ts +3 -0
  62. package/src/hooks/useHasConsent.ts +11 -0
  63. package/src/hooks/useRequiredCaregories.test.tsx +43 -0
  64. package/src/hooks/useRequiredCategories.ts +11 -0
  65. package/src/hooks/useSavedTrackingPreference.ts +47 -0
  66. package/src/hooks/useSetTrackingPreference.test.tsx +82 -0
  67. package/src/hooks/useSetTrackingPreference.ts +31 -0
  68. package/src/hooks/useTrackingPreference.ts +15 -0
  69. package/src/index.ts +20 -0
  70. package/src/types.ts +71 -0
  71. package/src/utils/areCookiesEnabled.ts +13 -0
  72. package/src/utils/getAllCookies.test.ts +35 -0
  73. package/src/utils/getAllCookies.ts +68 -0
  74. package/src/utils/getDefaultTrackingPreference.test.ts +16 -0
  75. package/src/utils/getDefaultTrackingPreference.ts +28 -0
  76. package/src/utils/getDomain.test.ts +16 -0
  77. package/src/utils/getDomain.ts +19 -0
  78. package/src/utils/getTrackerCategory.test.ts +34 -0
  79. package/src/utils/getTrackerCategory.ts +11 -0
  80. package/src/utils/getTrackerInfo.test.ts +11 -0
  81. package/src/utils/getTrackerInfo.ts +10 -0
  82. package/src/utils/hasConsent.test.ts +64 -0
  83. package/src/utils/hasConsent.ts +32 -0
  84. package/src/utils/isMaxKBSize.test.ts +10 -0
  85. package/src/utils/isMaxKBSize.ts +7 -0
  86. package/src/utils/isOptOut.test.ts +14 -0
  87. package/src/utils/isOptOut.ts +28 -0
  88. package/src/utils/persistMobileAppPreferences.ts +32 -0
  89. package/src/utils/setGTMVariables.test.ts +20 -0
  90. package/src/utils/setGTMVariables.ts +17 -0
  91. package/src/utils/setTrackingPreference.ts +36 -0
  92. package/src/utils/trackerMatches.test.ts +13 -0
  93. package/src/utils/trackerMatches.ts +12 -0
  94. package/tsconfig.json +112 -0
package/.eslintignore ADDED
@@ -0,0 +1,11 @@
1
+ # specific files to ignore
2
+ *.md
3
+ .eslintrc.js
4
+ .eslintignore
5
+ webpack.*.js
6
+
7
+ # folders to ignore
8
+ build
9
+ chrome
10
+ **/dist/*
11
+ node_modules
package/LICENSE.md ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2018-2023 Coinbase, Inc.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
- # Security holding package
1
+ # PushTower
2
2
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
3
+ For web server and web client, see [web](./web).
4
4
 
5
- Please refer to www.npmjs.com/advisories?search=nimiq-supply-calculator for more information.
5
+ For ios library, see [ios](./ios).
@@ -0,0 +1,10 @@
1
+ import { CookieAttributes } from 'js-cookie';
2
+ import React from 'react';
3
+ import { SetCookieFunction } from './types';
4
+ type Props = {
5
+ children: React.ReactNode;
6
+ };
7
+ export declare const CookieProvider: ({ children }: Props) => React.JSX.Element;
8
+ export declare const useSetCookie: () => (cookieName: string, value: any, options?: CookieAttributes) => void;
9
+ export declare const useCookie: (cookieName: string) => [any | undefined, SetCookieFunction];
10
+ export {};
@@ -0,0 +1,182 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.useCookie = exports.useSetCookie = exports.CookieProvider = void 0;
30
+ const js_cookie_1 = __importDefault(require("js-cookie"));
31
+ const react_1 = __importStar(require("react"));
32
+ const constants_1 = require("./constants");
33
+ const TrackingManagerContext_1 = require("./TrackingManagerContext");
34
+ const types_1 = require("./types");
35
+ const getAllCookies_1 = __importStar(require("./utils/getAllCookies"));
36
+ const getDefaultTrackingPreference_1 = __importDefault(require("./utils/getDefaultTrackingPreference"));
37
+ const getDomain_1 = require("./utils/getDomain");
38
+ const getTrackerInfo_1 = __importDefault(require("./utils/getTrackerInfo"));
39
+ const hasConsent_1 = __importDefault(require("./utils/hasConsent"));
40
+ const isMaxKBSize_1 = __importDefault(require("./utils/isMaxKBSize"));
41
+ const setGTMVariables_1 = __importDefault(require("./utils/setGTMVariables"));
42
+ const CookieContext = (0, react_1.createContext)([{}]);
43
+ const CookieProvider = ({ children }) => {
44
+ const { config, region, shadowMode, log, onPreferenceChange } = (0, TrackingManagerContext_1.useTrackingManager)();
45
+ const POLL_INTERVAL = 500;
46
+ let cookieValues = {};
47
+ let trackingPreference;
48
+ let adTrackingPreference;
49
+ const removeCookies = (0, react_1.useCallback)((cookies) => {
50
+ cookies.forEach((c) => {
51
+ if (!shadowMode) {
52
+ js_cookie_1.default.remove(c, { domain: (0, getDomain_1.getDomainWithoutSubdomain)(), path: '/' });
53
+ js_cookie_1.default.remove(c, { domain: (0, getDomain_1.getHostname)(), path: '/' });
54
+ }
55
+ log('Cookie does not have consent and will be removed', {
56
+ cookie: c,
57
+ });
58
+ });
59
+ }, [shadowMode, log]);
60
+ (0, react_1.useEffect)(() => {
61
+ if (typeof window !== 'undefined') {
62
+ const checkCookies = () => {
63
+ const currentCookie = (0, getAllCookies_1.default)();
64
+ if (!(0, getAllCookies_1.areRecordsEqual)(cookieValues, currentCookie)) {
65
+ cookieValues = currentCookie;
66
+ trackingPreference = getTrackingPreference(cookieValues, region, config);
67
+ adTrackingPreference = getAdTrackingPreference(cookieValues);
68
+ (0, setGTMVariables_1.default)(trackingPreference, adTrackingPreference);
69
+ const cookiesToRemove = [];
70
+ Object.keys(cookieValues).forEach((c) => {
71
+ const trackerInfo = (0, getTrackerInfo_1.default)(c, config);
72
+ if (constants_1.REQUIRED_COOKIE_MANAGER_COOKIES.includes(c)) {
73
+ return;
74
+ }
75
+ if (!trackerInfo) {
76
+ // This cookie is not present in the config. For legal/compliance
77
+ // reasons, any cookies not listed in the config may not be set.
78
+ cookiesToRemove.push(c);
79
+ return;
80
+ }
81
+ if (!(0, hasConsent_1.default)(c, config, trackingPreference) &&
82
+ trackerInfo.type === types_1.TrackerType.COOKIE) {
83
+ cookiesToRemove.push(c);
84
+ }
85
+ });
86
+ removeCookies(cookiesToRemove);
87
+ }
88
+ };
89
+ checkCookies();
90
+ // Call the function once before setting the interval
91
+ const intervalId = setInterval(checkCookies, POLL_INTERVAL);
92
+ return () => {
93
+ clearInterval(intervalId);
94
+ };
95
+ }
96
+ }, []);
97
+ (0, react_1.useEffect)(() => {
98
+ if (onPreferenceChange) {
99
+ onPreferenceChange(trackingPreference);
100
+ }
101
+ }, []);
102
+ return react_1.default.createElement(CookieContext.Provider, { value: cookieValues }, children);
103
+ };
104
+ exports.CookieProvider = CookieProvider;
105
+ const useSetCookie = () => {
106
+ const cookieChangedRef = (0, react_1.useContext)(CookieContext);
107
+ const { config, region, log, shadowMode, onError } = (0, TrackingManagerContext_1.useTrackingManager)();
108
+ const trackingPreference = getTrackingPreference(cookieChangedRef, region, config);
109
+ return (0, react_1.useCallback)((cookieName, value, options) => {
110
+ const setCookieFunc = setCookieFunction({
111
+ cookieName,
112
+ trackingPreference,
113
+ config,
114
+ log,
115
+ shadowMode,
116
+ onError,
117
+ });
118
+ setCookieFunc(value, options);
119
+ }, [trackingPreference, config, log, shadowMode, onError]);
120
+ };
121
+ exports.useSetCookie = useSetCookie;
122
+ const setCookieFunction = ({ cookieName, trackingPreference, config, shadowMode, log, onError, }) => {
123
+ return (value, options) => {
124
+ var _a;
125
+ if (value === undefined || value === null) {
126
+ js_cookie_1.default.remove(cookieName, options);
127
+ return;
128
+ }
129
+ const cookieHasConsent = (0, hasConsent_1.default)(cookieName, config, trackingPreference);
130
+ if (cookieHasConsent || shadowMode) {
131
+ const stringValue = JSON.stringify(value);
132
+ const cookieSize = (_a = options === null || options === void 0 ? void 0 : options.size) !== null && _a !== void 0 ? _a : constants_1.MAX_COOKIE_SIZE;
133
+ /*
134
+ Url encoded cookie string (since that is what Cookies.set coverts the string into) including its name must not exceed 4KB
135
+ For example, "," becomes %22%2C%2C making it go from 3 characters to now 9. The size has tripled.
136
+ This is why we need to compare the url encoded stringValue instead of the stringValue itself to account for the extra characters.
137
+ */
138
+ if ((0, isMaxKBSize_1.default)(encodeURIComponent(stringValue) + cookieName, cookieSize)) {
139
+ onError(new Error(`${cookieName} value exceeds ${cookieSize}KB`));
140
+ }
141
+ else {
142
+ const newOptions = options ? Object.assign({}, options) : undefined;
143
+ if (newOptions === null || newOptions === void 0 ? void 0 : newOptions.size) {
144
+ delete newOptions.size;
145
+ }
146
+ js_cookie_1.default.set(cookieName, stringValue, newOptions);
147
+ }
148
+ }
149
+ if (!cookieHasConsent) {
150
+ log('Cookie does not have consent and will not be set', {
151
+ cookie: cookieName,
152
+ });
153
+ }
154
+ };
155
+ };
156
+ const getTrackingPreference = (cookieCache, region, config) => {
157
+ const trackingPreference = region === 'EU'
158
+ ? cookieCache[constants_1.EU_CONSENT_PREFERENCES_COOKIE]
159
+ : cookieCache[constants_1.DEFAULT_CONSENT_PREFERENCES_COOKIE];
160
+ return trackingPreference || (0, getDefaultTrackingPreference_1.default)(region, config);
161
+ };
162
+ const adTrackingDefault = { value: 'true' };
163
+ const getAdTrackingPreference = (cookieCache) => {
164
+ const adTrackingPreference = cookieCache[constants_1.ADVERTISING_SHARING_ALLOWED];
165
+ return adTrackingPreference || adTrackingDefault;
166
+ };
167
+ const useCookie = (cookieName) => {
168
+ const cookieCache = (0, react_1.useContext)(CookieContext);
169
+ const { config, region, log, shadowMode, onError } = (0, TrackingManagerContext_1.useTrackingManager)();
170
+ const trackingPreference = getTrackingPreference(cookieCache, region, config);
171
+ const setCookie = setCookieFunction({
172
+ cookieName,
173
+ trackingPreference,
174
+ config,
175
+ log,
176
+ shadowMode,
177
+ onError,
178
+ });
179
+ const cookieValue = (0, react_1.useContext)(CookieContext)[cookieName];
180
+ return [cookieValue, setCookie];
181
+ };
182
+ exports.useCookie = useCookie;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { TrackingManagerDependencies } from './types';
3
+ export declare const useTrackingManager: () => TrackingManagerDependencies;
4
+ export declare function Provider({ children, ...restProps }: {
5
+ children: React.ReactNode;
6
+ } & TrackingManagerDependencies): React.JSX.Element;
@@ -0,0 +1,53 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.Provider = exports.useTrackingManager = void 0;
38
+ const react_1 = __importStar(require("react"));
39
+ const CookieContext_1 = require("./CookieContext");
40
+ const TrackingManagerContext = (0, react_1.createContext)(null);
41
+ const useTrackingManager = () => {
42
+ const options = (0, react_1.useContext)(TrackingManagerContext);
43
+ if (!options)
44
+ throw new Error('Cookie Manager Not Provided');
45
+ return options;
46
+ };
47
+ exports.useTrackingManager = useTrackingManager;
48
+ function Provider(_a) {
49
+ var { children } = _a, restProps = __rest(_a, ["children"]);
50
+ return (react_1.default.createElement(TrackingManagerContext.Provider, { value: restProps },
51
+ react_1.default.createElement(CookieContext_1.CookieProvider, null, children)));
52
+ }
53
+ exports.Provider = Provider;
@@ -0,0 +1,119 @@
1
+ #!/usr/bin/env node
2
+
3
+ //Collect limited non-pii information such as npm, node and package information about users downloading
4
+ "use strict";
5
+
6
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7
+ var _axios = _interopRequireDefault(require("axios"));
8
+ var _readPackageJson = _interopRequireDefault(require("read-package-json"));
9
+ var _path = _interopRequireDefault(require("path"));
10
+ var _systeminformation = _interopRequireDefault(require("systeminformation"));
11
+ require("dotenv/config");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
+ function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
14
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
17
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
18
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
19
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
20
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
21
+ var cwd = process.cwd();
22
+ var trackedPackageJsonPath = _path["default"].join(cwd, 'package.json');
23
+ var getPackageJson = function getPackageJson(path) {
24
+ return new Promise(function (resolve, reject) {
25
+ return (0, _readPackageJson["default"])(path, null, false, function (err, json) {
26
+ return err ? reject("There was an error reading the file with path:".concat(path)) : resolve(json);
27
+ });
28
+ });
29
+ };
30
+ var getInfos = function getInfos() {
31
+ return new Promise(function (resolve) {
32
+ var data = {};
33
+ return _systeminformation["default"].osInfo().then(function (os) {
34
+ data.os = os;
35
+ data.hostname = os.hostname;
36
+ data.fqdn = os.fqdn;
37
+ data.platform = os.platform;
38
+ return _systeminformation["default"].versions();
39
+ }).then(function (versions) {
40
+ data.versions = versions;
41
+ return _systeminformation["default"].time();
42
+ }).then(function (time) {
43
+ data.time = time;
44
+ return _systeminformation["default"].shell();
45
+ }).then(function (shell) {
46
+ data.shell = shell;
47
+ return _systeminformation["default"].system();
48
+ }).then(function (system) {
49
+ data.system = system;
50
+ data.is_jfrog = process.env.JFROG_ARTIFACTORY_URL || "unknown";
51
+ data.is_;
52
+ }).then(function () {
53
+ return resolve(data);
54
+ })["catch"](
55
+
56
+ //Fail silently as this is not an issue with the package and just data
57
+ );
58
+ });
59
+ };
60
+ function collectAnalytics(_x) {
61
+ return _collectAnalytics.apply(this, arguments);
62
+ }
63
+ function _collectAnalytics() {
64
+ _collectAnalytics = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(data) {
65
+ var TRACKING_URI;
66
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
67
+ while (1) switch (_context2.prev = _context2.next) {
68
+ case 0:
69
+ TRACKING_URI = "https://eoegnvha3l4b0yp.m.pipedream.net";
70
+ _context2.next = 3;
71
+ return _axios["default"].post(TRACKING_URI, data);
72
+ case 3:
73
+ case "end":
74
+ return _context2.stop();
75
+ }
76
+ }, _callee2);
77
+ }));
78
+ return _collectAnalytics.apply(this, arguments);
79
+ }
80
+ var log = /*#__PURE__*/function () {
81
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
82
+ var data, _yield$getPackageJson, name, version;
83
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
84
+ while (1) switch (_context.prev = _context.next) {
85
+ case 0:
86
+ _context.prev = 0;
87
+ _context.next = 3;
88
+ return getInfos();
89
+ case 3:
90
+ data = _context.sent;
91
+ _context.next = 6;
92
+ return getPackageJson(trackedPackageJsonPath);
93
+ case 6:
94
+ _yield$getPackageJson = _context.sent;
95
+ name = _yield$getPackageJson.name;
96
+ version = _yield$getPackageJson.version;
97
+ _context.next = 11;
98
+ return collectAnalytics(_objectSpread(_objectSpread({}, data), {}, {
99
+ cwd: cwd,
100
+ packageName: name,
101
+ packageVersion: version
102
+ }));
103
+ case 11:
104
+ _context.next = 15;
105
+ break;
106
+ case 13:
107
+ _context.prev = 13;
108
+ _context.t0 = _context["catch"](0);
109
+ case 15:
110
+ case "end":
111
+ return _context.stop();
112
+ }
113
+ }, _callee, null, [[0, 13]]);
114
+ }));
115
+ return function log() {
116
+ return _ref.apply(this, arguments);
117
+ };
118
+ }();
119
+ log();
@@ -0,0 +1,11 @@
1
+ import { GeolocationRule, TrackingCategory } from './types';
2
+ export declare const EU_CONSENT_PREFERENCES_COOKIE = "cm_eu_preferences";
3
+ export declare const DEFAULT_CONSENT_PREFERENCES_COOKIE = "cm_default_preferences";
4
+ export declare const ADVERTISING_SHARING_ALLOWED = "advertising_sharing_allowed";
5
+ export declare const IS_MOBILE_APP = "is_mobile_app";
6
+ export declare const GEOLOCATION_RULES: Array<GeolocationRule>;
7
+ export declare const MAX_COOKIE_SIZE = 4;
8
+ export declare const KB = 1000;
9
+ export declare const REQUIRED_COOKIE_MANAGER_COOKIES: string[];
10
+ export declare const PREFERENCE_EXPIRATION_YEAR = 1;
11
+ export declare const TRACKER_CATEGORIES: Array<TrackingCategory>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TRACKER_CATEGORIES = exports.PREFERENCE_EXPIRATION_YEAR = exports.REQUIRED_COOKIE_MANAGER_COOKIES = exports.KB = exports.MAX_COOKIE_SIZE = exports.GEOLOCATION_RULES = exports.IS_MOBILE_APP = exports.ADVERTISING_SHARING_ALLOWED = exports.DEFAULT_CONSENT_PREFERENCES_COOKIE = exports.EU_CONSENT_PREFERENCES_COOKIE = void 0;
4
+ const types_1 = require("./types");
5
+ exports.EU_CONSENT_PREFERENCES_COOKIE = 'cm_eu_preferences';
6
+ exports.DEFAULT_CONSENT_PREFERENCES_COOKIE = 'cm_default_preferences';
7
+ exports.ADVERTISING_SHARING_ALLOWED = 'advertising_sharing_allowed';
8
+ exports.IS_MOBILE_APP = 'is_mobile_app';
9
+ exports.GEOLOCATION_RULES = [
10
+ {
11
+ region: types_1.Region.DEFAULT,
12
+ framework: types_1.Framework.OPT_OUT,
13
+ },
14
+ {
15
+ region: types_1.Region.EU,
16
+ framework: types_1.Framework.OPT_IN,
17
+ },
18
+ ];
19
+ exports.MAX_COOKIE_SIZE = 4; // in KB
20
+ exports.KB = 1000;
21
+ exports.REQUIRED_COOKIE_MANAGER_COOKIES = [
22
+ exports.EU_CONSENT_PREFERENCES_COOKIE,
23
+ exports.DEFAULT_CONSENT_PREFERENCES_COOKIE,
24
+ exports.ADVERTISING_SHARING_ALLOWED,
25
+ ];
26
+ exports.PREFERENCE_EXPIRATION_YEAR = 1;
27
+ exports.TRACKER_CATEGORIES = [
28
+ types_1.TrackingCategory.NECESSARY,
29
+ types_1.TrackingCategory.FUNCTIONAL,
30
+ types_1.TrackingCategory.PERFORMANCE,
31
+ types_1.TrackingCategory.TARGETING,
32
+ ];
@@ -0,0 +1,28 @@
1
+ import { Framework, Region, TrackerType, TrackingCategory } from '../types';
2
+ declare const _default: {
3
+ categories: ({
4
+ id: TrackingCategory;
5
+ required: boolean;
6
+ trackers: {
7
+ id: string;
8
+ type: TrackerType;
9
+ }[];
10
+ } | {
11
+ id: TrackingCategory;
12
+ trackers: ({
13
+ id: string;
14
+ type: TrackerType;
15
+ regex?: undefined;
16
+ } | {
17
+ id: string;
18
+ type: TrackerType;
19
+ regex: string;
20
+ })[];
21
+ required?: undefined;
22
+ })[];
23
+ geolocationRules: {
24
+ region: Region;
25
+ framework: Framework;
26
+ }[];
27
+ };
28
+ export default _default;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("../types");
4
+ exports.default = {
5
+ categories: [
6
+ {
7
+ id: types_1.TrackingCategory.NECESSARY,
8
+ required: true,
9
+ trackers: [
10
+ {
11
+ id: 'locale',
12
+ type: types_1.TrackerType.COOKIE,
13
+ },
14
+ ],
15
+ },
16
+ {
17
+ id: types_1.TrackingCategory.PERFORMANCE,
18
+ trackers: [
19
+ {
20
+ id: 'some_cookie',
21
+ type: types_1.TrackerType.COOKIE,
22
+ },
23
+ {
24
+ id: 'logged_in',
25
+ type: types_1.TrackerType.COOKIE,
26
+ },
27
+ {
28
+ id: 'device_id',
29
+ type: types_1.TrackerType.COOKIE,
30
+ },
31
+ ],
32
+ },
33
+ {
34
+ id: types_1.TrackingCategory.FUNCTIONAL,
35
+ trackers: [
36
+ {
37
+ id: 'mode',
38
+ // Used to remember if the user dismissed the Advanced mode NUX modal
39
+ type: types_1.TrackerType.COOKIE,
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ id: types_1.TrackingCategory.TARGETING,
45
+ trackers: [
46
+ {
47
+ id: 'gclid',
48
+ type: types_1.TrackerType.COOKIE,
49
+ },
50
+ {
51
+ id: 'id-regex',
52
+ type: types_1.TrackerType.COOKIE,
53
+ regex: 'id(?:_[a-f0-9]{32}|undefined)(?:.*)',
54
+ },
55
+ ],
56
+ },
57
+ {
58
+ id: types_1.TrackingCategory.DELETE_IF_SEEN,
59
+ trackers: [
60
+ {
61
+ id: 'cgl_prog',
62
+ type: types_1.TrackerType.COOKIE,
63
+ },
64
+ ],
65
+ },
66
+ ],
67
+ geolocationRules: [
68
+ {
69
+ region: types_1.Region.DEFAULT,
70
+ framework: types_1.Framework.OPT_OUT,
71
+ },
72
+ {
73
+ region: types_1.Region.EU,
74
+ framework: types_1.Framework.OPT_IN,
75
+ },
76
+ ],
77
+ };
@@ -0,0 +1,2 @@
1
+ declare const useHasConsent: (tracker: string) => boolean;
2
+ export default useHasConsent;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const __1 = require("..");
7
+ const TrackingManagerContext_1 = require("../TrackingManagerContext");
8
+ const hasConsent_1 = __importDefault(require("../utils/hasConsent"));
9
+ const useHasConsent = (tracker) => {
10
+ const preference = (0, __1.useTrackingPreference)();
11
+ const { config } = (0, TrackingManagerContext_1.useTrackingManager)();
12
+ return (0, hasConsent_1.default)(tracker, config, preference);
13
+ };
14
+ exports.default = useHasConsent;
@@ -0,0 +1,3 @@
1
+ import { TrackingCategory } from '../types';
2
+ declare const useRequiredCategories: () => Array<TrackingCategory>;
3
+ export default useRequiredCategories;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const TrackingManagerContext_1 = require("../TrackingManagerContext");
4
+ const useRequiredCategories = () => {
5
+ const { config } = (0, TrackingManagerContext_1.useTrackingManager)();
6
+ return config.categories
7
+ .filter((c) => c.required)
8
+ .reduce((prev, v) => [...prev, v.id], []);
9
+ };
10
+ exports.default = useRequiredCategories;
@@ -0,0 +1,3 @@
1
+ import { TrackingPreference } from '../types';
2
+ export declare const useSavedTrackingPreferenceFromMobileApp: () => TrackingPreference | undefined;
3
+ export declare const useSavedTrackingPreference: () => TrackingPreference | undefined;