@prosopo/procaptcha-common 2.9.19 → 2.10.17

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 (107) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +22 -15
  2. package/.turbo/turbo-build$colon$tsc.log +52 -0
  3. package/.turbo/turbo-build.log +26 -16
  4. package/CHANGELOG.md +392 -0
  5. package/dist/callbacks/defaultCallbacks.d.ts +4 -0
  6. package/dist/callbacks/defaultCallbacks.d.ts.map +1 -0
  7. package/dist/callbacks/defaultCallbacks.js.map +1 -0
  8. package/dist/callbacks/defaultEvents.d.ts +14 -0
  9. package/dist/callbacks/defaultEvents.d.ts.map +1 -0
  10. package/dist/callbacks/defaultEvents.js.map +1 -0
  11. package/dist/cjs/elements/form.cjs +8 -2
  12. package/dist/cjs/elements/window.cjs +7 -0
  13. package/dist/cjs/index.cjs +5 -0
  14. package/dist/cjs/reactComponents/Checkbox.cjs +11 -7
  15. package/dist/cjs/reactComponents/Honeypot.cjs +67 -0
  16. package/dist/cjs/reactComponents/TestModeBanner.cjs +47 -0
  17. package/dist/elements/form.d.ts +5 -0
  18. package/dist/elements/form.d.ts.map +1 -0
  19. package/dist/elements/form.js +8 -2
  20. package/dist/elements/form.js.map +1 -0
  21. package/dist/elements/window.d.ts +3 -0
  22. package/dist/elements/window.d.ts.map +1 -0
  23. package/dist/elements/window.js +8 -1
  24. package/dist/elements/window.js.map +1 -0
  25. package/dist/extensionLoader.d.ts +2 -0
  26. package/dist/extensionLoader.d.ts.map +1 -0
  27. package/dist/extensionLoader.js.map +1 -0
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +6 -1
  31. package/dist/index.js.map +1 -0
  32. package/dist/providers.d.ts +4 -0
  33. package/dist/providers.d.ts.map +1 -0
  34. package/dist/providers.js.map +1 -0
  35. package/dist/reactComponents/Checkbox.d.ts +13 -0
  36. package/dist/reactComponents/Checkbox.d.ts.map +1 -0
  37. package/dist/reactComponents/Checkbox.js +11 -7
  38. package/dist/reactComponents/Checkbox.js.map +1 -0
  39. package/dist/reactComponents/Honeypot.d.ts +6 -0
  40. package/dist/reactComponents/Honeypot.d.ts.map +1 -0
  41. package/dist/reactComponents/Honeypot.js +67 -0
  42. package/dist/reactComponents/Honeypot.js.map +1 -0
  43. package/dist/reactComponents/Reload.d.ts +8 -0
  44. package/dist/reactComponents/Reload.d.ts.map +1 -0
  45. package/dist/reactComponents/Reload.js.map +1 -0
  46. package/dist/reactComponents/TestModeBanner.d.ts +7 -0
  47. package/dist/reactComponents/TestModeBanner.d.ts.map +1 -0
  48. package/dist/reactComponents/TestModeBanner.js +47 -0
  49. package/dist/reactComponents/TestModeBanner.js.map +1 -0
  50. package/dist/state/builder.d.ts +9 -0
  51. package/dist/state/builder.d.ts.map +1 -0
  52. package/dist/state/builder.js.map +1 -0
  53. package/dist/tests/defaultCallbacks.test.d.ts +2 -0
  54. package/dist/tests/defaultCallbacks.test.d.ts.map +1 -0
  55. package/dist/tests/defaultCallbacks.test.js +219 -0
  56. package/dist/tests/defaultCallbacks.test.js.map +1 -0
  57. package/dist/tests/defaultEvents.test.d.ts +2 -0
  58. package/dist/tests/defaultEvents.test.d.ts.map +1 -0
  59. package/dist/tests/defaultEvents.test.js +54 -0
  60. package/dist/tests/defaultEvents.test.js.map +1 -0
  61. package/dist/tests/extensionLoader.test.d.ts +2 -0
  62. package/dist/tests/extensionLoader.test.d.ts.map +1 -0
  63. package/dist/tests/extensionLoader.test.js +21 -0
  64. package/dist/tests/extensionLoader.test.js.map +1 -0
  65. package/dist/tests/form.test.d.ts +2 -0
  66. package/dist/tests/form.test.d.ts.map +1 -0
  67. package/dist/tests/form.test.js +98 -0
  68. package/dist/tests/form.test.js.map +1 -0
  69. package/dist/tests/providers.test.d.ts +2 -0
  70. package/dist/tests/providers.test.d.ts.map +1 -0
  71. package/dist/tests/providers.test.js +111 -0
  72. package/dist/tests/providers.test.js.map +1 -0
  73. package/dist/tests/state-builder.test.d.ts +2 -0
  74. package/dist/tests/state-builder.test.d.ts.map +1 -0
  75. package/dist/tests/state-builder.test.js +193 -0
  76. package/dist/tests/state-builder.test.js.map +1 -0
  77. package/dist/tests/window.test.d.ts +2 -0
  78. package/dist/tests/window.test.d.ts.map +1 -0
  79. package/dist/tests/window.test.js +80 -0
  80. package/dist/tests/window.test.js.map +1 -0
  81. package/package.json +13 -9
  82. package/src/callbacks/defaultCallbacks.ts +197 -0
  83. package/src/callbacks/defaultEvents.ts +21 -0
  84. package/src/elements/form.ts +41 -0
  85. package/src/elements/window.ts +39 -0
  86. package/src/extensionLoader.ts +17 -0
  87. package/src/index.ts +24 -0
  88. package/src/providers.ts +49 -0
  89. package/src/reactComponents/Checkbox.tsx +203 -0
  90. package/src/reactComponents/Honeypot.tsx +133 -0
  91. package/src/reactComponents/Reload.tsx +99 -0
  92. package/src/reactComponents/TestModeBanner.tsx +75 -0
  93. package/src/state/builder.ts +137 -0
  94. package/src/tests/defaultCallbacks.test.ts +372 -0
  95. package/src/tests/defaultEvents.test.ts +80 -0
  96. package/src/tests/extensionLoader.test.ts +41 -0
  97. package/src/tests/form.test.ts +154 -0
  98. package/src/tests/providers.test.ts +175 -0
  99. package/src/tests/state-builder.test.ts +264 -0
  100. package/src/tests/window.test.ts +137 -0
  101. package/tsconfig.cjs.json +32 -0
  102. package/tsconfig.json +33 -0
  103. package/tsconfig.tsbuildinfo +1 -0
  104. package/tsconfig.types.json +9 -0
  105. package/vite.cjs.config.ts +1 -1
  106. package/vite.esm.config.ts +1 -1
  107. package/vite.test.config.ts +1 -1
@@ -8,6 +8,8 @@ const extensionLoader = require("./extensionLoader.cjs");
8
8
  const window = require("./elements/window.cjs");
9
9
  const Reload = require("./reactComponents/Reload.cjs");
10
10
  const Checkbox = require("./reactComponents/Checkbox.cjs");
11
+ const Honeypot = require("./reactComponents/Honeypot.cjs");
12
+ const TestModeBanner = require("./reactComponents/TestModeBanner.cjs");
11
13
  exports.getProcaptchaRandomActiveProvider = providers.getProcaptchaRandomActiveProvider;
12
14
  exports.providerRetry = providers.providerRetry;
13
15
  exports.buildUpdateState = builder.buildUpdateState;
@@ -17,5 +19,8 @@ exports.setUserCallbacks = defaultCallbacks.setUserCallbacks;
17
19
  exports.getDefaultEvents = defaultEvents.getDefaultEvents;
18
20
  exports.ExtensionLoader = extensionLoader.ExtensionLoader;
19
21
  exports.getWindowCallback = window.getWindowCallback;
22
+ exports.isSecureBrowserContext = window.isSecureBrowserContext;
20
23
  exports.ReloadButton = Reload.ReloadButton;
21
24
  exports.Checkbox = Checkbox.Checkbox;
25
+ exports.Honeypot = Honeypot.Honeypot;
26
+ exports.TestModeBanner = TestModeBanner.TestModeBanner;
@@ -52,20 +52,24 @@ const Checkbox = ({
52
52
  const ResponsiveLabel = styled.label`
53
53
  color: ${theme.palette.background.contrastText};
54
54
  position: relative;
55
- display: flex;
55
+ display: flex !important;
56
56
  cursor: pointer;
57
57
  user-select: none;
58
-
59
- @container widget (max-width: 219px) {
58
+ font-weight: normal;
59
+ font-family: ${theme.font.fontFamily};
60
+ @container prosopo-widget (max-width: 169px) {
60
61
  display: none;
61
62
  }
62
- @container widget (min-width: 220px) {
63
+ @container prosopo-widget (min-width: 170px) {
64
+ font-size: 10px;
65
+ }
66
+ @container prosopo-widget (min-width: 220px) {
63
67
  font-size: 12px;
64
68
  }
65
- @container widget (min-width: 250px) {
69
+ @container prosopo-widget (min-width: 250px) {
66
70
  font-size: 14px;
67
71
  }
68
- @container widget (min-width: 270px) {
72
+ @container prosopo-widget (min-width: 270px) {
69
73
  font-size: 16px;
70
74
  }
71
75
  `;
@@ -130,7 +134,7 @@ const Checkbox = ({
130
134
  checked,
131
135
  style: checkboxStyle,
132
136
  disabled: error !== void 0,
133
- className: loading ? "checkbox__loading-spinner" : "",
137
+ className: loading ? "prosopo-checkbox__loading-spinner" : "",
134
138
  "data-cy": "captcha-checkbox"
135
139
  }
136
140
  ),
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
+ const react = require("react");
5
+ const reactDom = require("react-dom");
6
+ const offscreenStyle = {
7
+ position: "absolute",
8
+ left: "-9999px",
9
+ top: "-9999px",
10
+ width: "1px",
11
+ height: "1px",
12
+ overflow: "hidden",
13
+ opacity: 0
14
+ };
15
+ const decodeBase64Utf8 = (b64) => {
16
+ const binary = atob(b64);
17
+ const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0));
18
+ return new TextDecoder().decode(bytes);
19
+ };
20
+ const findAncestorForm = (anchor) => {
21
+ const root = anchor.getRootNode();
22
+ const lightDomEntry = root instanceof ShadowRoot ? root.host : anchor;
23
+ return lightDomEntry instanceof Element ? lightDomEntry.closest("form") : null;
24
+ };
25
+ const Honeypot = react.forwardRef(
26
+ ({ encodedQuestion }, ref) => {
27
+ const id = react.useId();
28
+ const detachedFormId = `${id}-d`;
29
+ const question = react.useMemo(
30
+ () => decodeBase64Utf8(encodedQuestion),
31
+ [encodedQuestion]
32
+ );
33
+ const anchorRef = react.useRef(null);
34
+ const [portalTarget, setPortalTarget] = react.useState(null);
35
+ react.useEffect(() => {
36
+ const anchor = anchorRef.current;
37
+ if (!anchor) return;
38
+ setPortalTarget(findAncestorForm(anchor) ?? document.body);
39
+ }, []);
40
+ if (typeof document === "undefined") return null;
41
+ if (!portalTarget) {
42
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { ref: anchorRef, "aria-hidden": "true", style: { display: "none" } });
43
+ }
44
+ return reactDom.createPortal(
45
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", style: offscreenStyle, children: /* @__PURE__ */ jsxRuntime.jsxs("label", { children: [
46
+ question,
47
+ /* @__PURE__ */ jsxRuntime.jsx(
48
+ "input",
49
+ {
50
+ ref,
51
+ id,
52
+ form: detachedFormId,
53
+ type: "text",
54
+ name: "email_confirm",
55
+ defaultValue: "",
56
+ tabIndex: -1,
57
+ autoComplete: "off",
58
+ "aria-hidden": "true"
59
+ }
60
+ )
61
+ ] }) }),
62
+ portalTarget
63
+ );
64
+ }
65
+ );
66
+ Honeypot.displayName = "Honeypot";
67
+ exports.Honeypot = Honeypot;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const jsxRuntime = require("@emotion/react/jsx-runtime");
4
+ const types = require("@prosopo/types");
5
+ const react = require("react");
6
+ const TestModeBanner = ({
7
+ siteKey
8
+ }) => {
9
+ const mode = types.getTestSiteKeyMode(siteKey);
10
+ react.useEffect(() => {
11
+ if (mode !== null) {
12
+ console.warn(
13
+ `[Procaptcha] WARNING: site key "${siteKey}" is a TEST key that ALWAYS ${mode === types.TestSiteKeyMode.Pass ? "PASSES" : "FAILS"}. Never use it in production.`
14
+ );
15
+ }
16
+ }, [mode, siteKey]);
17
+ if (mode === null) {
18
+ return null;
19
+ }
20
+ const action = mode === types.TestSiteKeyMode.Pass ? "ALWAYS PASSES" : "ALWAYS FAILS";
21
+ return (
22
+ // biome-ignore lint/a11y/useSemanticElements: the "alert" role has no native HTML element equivalent
23
+ /* @__PURE__ */ jsxRuntime.jsx(
24
+ "div",
25
+ {
26
+ role: "alert",
27
+ "data-cy": "test-mode-banner",
28
+ css: {
29
+ width: "100%",
30
+ boxSizing: "border-box",
31
+ padding: "6px 10px",
32
+ backgroundColor: "#fff3cd",
33
+ color: "#664d03",
34
+ border: "1px solid #ffe69c",
35
+ borderRadius: "4px",
36
+ fontSize: "11px",
37
+ lineHeight: "1.3",
38
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
39
+ textAlign: "center"
40
+ },
41
+ children: `⚠ Test mode: this site key ${action}. Do not use in production.`
42
+ }
43
+ )
44
+ );
45
+ };
46
+ exports.TestModeBanner = TestModeBanner;
47
+ exports.default = TestModeBanner;
@@ -0,0 +1,5 @@
1
+ type ParentForm = HTMLFormElement | null;
2
+ export declare function getParentForm(widgetElement: Element): ParentForm;
3
+ export declare const removeProcaptchaResponse: () => void;
4
+ export {};
5
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/elements/form.ts"],"names":[],"mappings":"AAgBA,KAAK,UAAU,GAAG,eAAe,GAAG,IAAI,CAAC;AAEzC,wBAAgB,aAAa,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,CAehE;AAED,eAAO,MAAM,wBAAwB,YAKpC,CAAC"}
@@ -1,8 +1,14 @@
1
1
  import { ApiParams } from "@prosopo/types";
2
2
  function getParentForm(widgetElement) {
3
+ const parentForm = widgetElement.closest("form");
4
+ if (parentForm) {
5
+ return parentForm;
6
+ }
3
7
  const rootWidgetNode = widgetElement.getRootNode();
4
- const topWidgetElement = rootWidgetNode instanceof ShadowRoot ? rootWidgetNode.host : widgetElement;
5
- return topWidgetElement.closest("form");
8
+ if (rootWidgetNode instanceof ShadowRoot) {
9
+ return rootWidgetNode.host.closest("form");
10
+ }
11
+ return null;
6
12
  }
7
13
  const removeProcaptchaResponse = () => {
8
14
  const element = Array.from(
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.js","sourceRoot":"","sources":["../../src/elements/form.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,MAAM,UAAU,aAAa,CAAC,aAAsB;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAe,CAAC;IAE/D,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAID,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IACnD,IAAI,cAAc,YAAY,UAAU,EAAE,CAAC;QAC1C,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAe,CAAC;IAC1D,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACzB,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CACxD,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const getWindowCallback: (callbackName: string) => any;
2
+ export declare const isSecureBrowserContext: () => boolean;
3
+ //# sourceMappingURL=window.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.d.ts","sourceRoot":"","sources":["../../src/elements/window.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,iBAAiB,iBAAkB,MAAM,QASrD,CAAC;AAUF,eAAO,MAAM,sBAAsB,QAAO,OAKzC,CAAC"}
@@ -7,6 +7,13 @@ const getWindowCallback = (callbackName) => {
7
7
  }
8
8
  return fn;
9
9
  };
10
+ const isSecureBrowserContext = () => {
11
+ if (typeof window === "undefined") {
12
+ return true;
13
+ }
14
+ return window.isSecureContext === true;
15
+ };
10
16
  export {
11
- getWindowCallback
17
+ getWindowCallback,
18
+ isSecureBrowserContext
12
19
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/elements/window.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAE,EAAE;IAEzD,MAAM,EAAE,GAAI,MAAc,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACd,YAAY,YAAY,sCAAsC,CAC9D,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAY,EAAE;IACnD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,eAAe,KAAK,IAAI,CAAC;AACxC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const ExtensionLoader: (web2: boolean) => Promise<typeof import("@prosopo/account/extension/ExtensionWeb3").ExtensionWeb3>;
2
+ //# sourceMappingURL=extensionLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensionLoader.d.ts","sourceRoot":"","sources":["../src/extensionLoader.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,eAAe,SAAgB,OAAO,qFAGmB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensionLoader.js","sourceRoot":"","sources":["../src/extensionLoader.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAa,EAAE,EAAE,CACtD,IAAI;IACH,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC,OAAO;IACpE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from "./providers.js";
2
+ export * from "./state/builder.js";
3
+ export * from "./callbacks/defaultCallbacks.js";
4
+ export * from "./callbacks/defaultEvents.js";
5
+ export * from "./extensionLoader.js";
6
+ export * from "./elements/window.js";
7
+ export * from "./reactComponents/Reload.js";
8
+ export * from "./reactComponents/Checkbox.js";
9
+ export * from "./reactComponents/Honeypot.js";
10
+ export * from "./reactComponents/TestModeBanner.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC"}
package/dist/index.js CHANGED
@@ -3,18 +3,23 @@ import { buildUpdateState, useProcaptcha } from "./state/builder.js";
3
3
  import { getDefaultCallbacks, setUserCallbacks } from "./callbacks/defaultCallbacks.js";
4
4
  import { getDefaultEvents } from "./callbacks/defaultEvents.js";
5
5
  import { ExtensionLoader } from "./extensionLoader.js";
6
- import { getWindowCallback } from "./elements/window.js";
6
+ import { getWindowCallback, isSecureBrowserContext } from "./elements/window.js";
7
7
  import { ReloadButton } from "./reactComponents/Reload.js";
8
8
  import { Checkbox } from "./reactComponents/Checkbox.js";
9
+ import { Honeypot } from "./reactComponents/Honeypot.js";
10
+ import { TestModeBanner } from "./reactComponents/TestModeBanner.js";
9
11
  export {
10
12
  Checkbox,
11
13
  ExtensionLoader,
14
+ Honeypot,
12
15
  ReloadButton,
16
+ TestModeBanner,
13
17
  buildUpdateState,
14
18
  getDefaultCallbacks,
15
19
  getDefaultEvents,
16
20
  getProcaptchaRandomActiveProvider,
17
21
  getWindowCallback,
22
+ isSecureBrowserContext,
18
23
  providerRetry,
19
24
  setUserCallbacks,
20
25
  useProcaptcha
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { EnvironmentTypes } from "@prosopo/types";
2
+ export declare const getProcaptchaRandomActiveProvider: (defaultEnvironment: EnvironmentTypes) => Promise<import("@prosopo/types").RandomProvider>;
3
+ export declare const providerRetry: (currentFn: () => Promise<void>, retryFn: () => Promise<void>, stateReset: () => void, attemptCount: number, retryMax: number) => Promise<void>;
4
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,eAAO,MAAM,iCAAiC,uBACzB,gBAAgB,qDAKpC,CAAC;AAEF,eAAO,MAAM,aAAa,cACd,MAAM,OAAO,CAAC,IAAI,CAAC,WACrB,MAAM,OAAO,CAAC,IAAI,CAAC,cAChB,MAAM,IAAI,gBACR,MAAM,YACV,MAAM,kBAkBhB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,EACrD,kBAAoC,EACnC,EAAE;IACH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAChE,OAAO,MAAM,uBAAuB,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EACjC,SAA8B,EAC9B,OAA4B,EAC5B,UAAsB,EACtB,YAAoB,EACpB,QAAgB,EACf,EAAE;IACH,IAAI,CAAC;QACJ,MAAM,SAAS,EAAE,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,CAAC,KAAK,CACZ,gBAAgB,YAAY,OAAO,QAAQ,qBAAqB,CAChE,CAAC;YACF,OAAO,UAAU,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnB,UAAU,EAAE,CAAC;QAEb,MAAM,OAAO,EAAE,CAAC;IACjB,CAAC;AACF,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type Theme } from "@prosopo/widget-skeleton";
2
+ import { type ButtonHTMLAttributes, type FC } from "react";
3
+ interface CheckboxProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
+ theme: Theme;
5
+ checked: boolean;
6
+ onChange: (event: any) => Promise<void>;
7
+ labelText: string;
8
+ error?: string;
9
+ loading: boolean;
10
+ }
11
+ export declare const Checkbox: FC<CheckboxProps>;
12
+ export default Checkbox;
13
+ //# sourceMappingURL=Checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../src/reactComponents/Checkbox.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACN,KAAK,KAAK,EAEV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,KAAK,oBAAoB,EAEzB,KAAK,EAAE,EAGP,MAAM,OAAO,CAAC;AAEf,UAAU,aAAc,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IACtE,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CACjB;AA4CD,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAyHtC,CAAC;AACF,eAAe,QAAQ,CAAC"}
@@ -50,20 +50,24 @@ const Checkbox = ({
50
50
  const ResponsiveLabel = styled.label`
51
51
  color: ${theme.palette.background.contrastText};
52
52
  position: relative;
53
- display: flex;
53
+ display: flex !important;
54
54
  cursor: pointer;
55
55
  user-select: none;
56
-
57
- @container widget (max-width: 219px) {
56
+ font-weight: normal;
57
+ font-family: ${theme.font.fontFamily};
58
+ @container prosopo-widget (max-width: 169px) {
58
59
  display: none;
59
60
  }
60
- @container widget (min-width: 220px) {
61
+ @container prosopo-widget (min-width: 170px) {
62
+ font-size: 10px;
63
+ }
64
+ @container prosopo-widget (min-width: 220px) {
61
65
  font-size: 12px;
62
66
  }
63
- @container widget (min-width: 250px) {
67
+ @container prosopo-widget (min-width: 250px) {
64
68
  font-size: 14px;
65
69
  }
66
- @container widget (min-width: 270px) {
70
+ @container prosopo-widget (min-width: 270px) {
67
71
  font-size: 16px;
68
72
  }
69
73
  `;
@@ -128,7 +132,7 @@ const Checkbox = ({
128
132
  checked,
129
133
  style: checkboxStyle,
130
134
  disabled: error !== void 0,
131
- className: loading ? "checkbox__loading-spinner" : "",
135
+ className: loading ? "prosopo-checkbox__loading-spinner" : "",
132
136
  "data-cy": "captcha-checkbox"
133
137
  }
134
138
  ),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sourceRoot":"","sources":["../../src/reactComponents/Checkbox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ interface HoneypotProps {
2
+ encodedQuestion: string;
3
+ }
4
+ export declare const Honeypot: import("react").ForwardRefExoticComponent<HoneypotProps & import("react").RefAttributes<HTMLInputElement>>;
5
+ export {};
6
+ //# sourceMappingURL=Honeypot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Honeypot.d.ts","sourceRoot":"","sources":["../../src/reactComponents/Honeypot.tsx"],"names":[],"mappings":"AAyBA,UAAU,aAAa;IACtB,eAAe,EAAE,MAAM,CAAC;CACxB;AA8CD,eAAO,MAAM,QAAQ,4GAyDpB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { jsx, jsxs } from "@emotion/react/jsx-runtime";
2
+ import { forwardRef, useId, useMemo, useRef, useState, useEffect } from "react";
3
+ import { createPortal } from "react-dom";
4
+ const offscreenStyle = {
5
+ position: "absolute",
6
+ left: "-9999px",
7
+ top: "-9999px",
8
+ width: "1px",
9
+ height: "1px",
10
+ overflow: "hidden",
11
+ opacity: 0
12
+ };
13
+ const decodeBase64Utf8 = (b64) => {
14
+ const binary = atob(b64);
15
+ const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0));
16
+ return new TextDecoder().decode(bytes);
17
+ };
18
+ const findAncestorForm = (anchor) => {
19
+ const root = anchor.getRootNode();
20
+ const lightDomEntry = root instanceof ShadowRoot ? root.host : anchor;
21
+ return lightDomEntry instanceof Element ? lightDomEntry.closest("form") : null;
22
+ };
23
+ const Honeypot = forwardRef(
24
+ ({ encodedQuestion }, ref) => {
25
+ const id = useId();
26
+ const detachedFormId = `${id}-d`;
27
+ const question = useMemo(
28
+ () => decodeBase64Utf8(encodedQuestion),
29
+ [encodedQuestion]
30
+ );
31
+ const anchorRef = useRef(null);
32
+ const [portalTarget, setPortalTarget] = useState(null);
33
+ useEffect(() => {
34
+ const anchor = anchorRef.current;
35
+ if (!anchor) return;
36
+ setPortalTarget(findAncestorForm(anchor) ?? document.body);
37
+ }, []);
38
+ if (typeof document === "undefined") return null;
39
+ if (!portalTarget) {
40
+ return /* @__PURE__ */ jsx("span", { ref: anchorRef, "aria-hidden": "true", style: { display: "none" } });
41
+ }
42
+ return createPortal(
43
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", style: offscreenStyle, children: /* @__PURE__ */ jsxs("label", { children: [
44
+ question,
45
+ /* @__PURE__ */ jsx(
46
+ "input",
47
+ {
48
+ ref,
49
+ id,
50
+ form: detachedFormId,
51
+ type: "text",
52
+ name: "email_confirm",
53
+ defaultValue: "",
54
+ tabIndex: -1,
55
+ autoComplete: "off",
56
+ "aria-hidden": "true"
57
+ }
58
+ )
59
+ ] }) }),
60
+ portalTarget
61
+ );
62
+ }
63
+ );
64
+ Honeypot.displayName = "Honeypot";
65
+ export {
66
+ Honeypot
67
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Honeypot.js","sourceRoot":"","sources":["../../src/reactComponents/Honeypot.tsx"],"names":[],"mappings":";AAcA,OAAO,EAEN,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,GACR,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAMzC,MAAM,cAAc,GAAkB;IACrC,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,CAAC;CACV,CAAC;AAKF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC,CAAC;AAKF,MAAM,gBAAgB,GAAG,CAAC,MAAe,EAA0B,EAAE;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IACtE,OAAO,aAAa,YAAY,OAAO;QACtC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC,CAAC,IAAI,CAAC;AACT,CAAC,CAAC;AAgBF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CACjC,CAAC,EAAE,eAAe,EAAE,EAAE,GAAG,EAAE,EAAE;IAC5B,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAOnB,MAAM,cAAc,GAAG,GAAG,EAAE,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,EACvC,CAAC,eAAe,CAAC,CACjB,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAqB,IAAI,CAAC,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAKjD,IAAI,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO,CACN,eAAM,GAAG,EAAE,SAAS,iBAAc,MAAM,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAI,CACvE,CAAC;IACH,CAAC;IAKD,OAAO,YAAY,CAClB,6BAAiB,MAAM,EAAC,KAAK,EAAE,cAAc,YAC5C,4BACE,QAAQ,EACT,gBACC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,cAAc,EACpB,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,eAAe,EACpB,YAAY,EAAC,EAAE,EACf,QAAQ,EAAE,CAAC,CAAC,EACZ,YAAY,EAAC,KAAK,iBACN,MAAM,GACjB,IACK,GACH,EACN,YAAY,CACZ,CAAC;AACH,CAAC,CACD,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ButtonHTMLAttributes, type FC } from "react";
2
+ interface ReloadButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
+ themeColor: "light" | "dark";
4
+ onReload: () => void;
5
+ }
6
+ export declare const ReloadButton: FC<ReloadButtonProps>;
7
+ export {};
8
+ //# sourceMappingURL=Reload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reload.d.ts","sourceRoot":"","sources":["../../src/reactComponents/Reload.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,EAAE,EAAqB,MAAM,OAAO,CAAC;AAE9E,UAAU,iBAAkB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACrB;AAaD,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAiE9C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reload.js","sourceRoot":"","sources":["../../src/reactComponents/Reload.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type FC } from "react";
2
+ interface TestModeBannerProps {
3
+ siteKey: string;
4
+ }
5
+ export declare const TestModeBanner: FC<TestModeBannerProps>;
6
+ export default TestModeBanner;
7
+ //# sourceMappingURL=TestModeBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestModeBanner.d.ts","sourceRoot":"","sources":["../../src/reactComponents/TestModeBanner.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,OAAO,CAAC;AAE3C,UAAU,mBAAmB;IAC5B,OAAO,EAAE,MAAM,CAAC;CAChB;AAMD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA6ClD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx } from "@emotion/react/jsx-runtime";
2
+ import { getTestSiteKeyMode, TestSiteKeyMode } from "@prosopo/types";
3
+ import { useEffect } from "react";
4
+ const TestModeBanner = ({
5
+ siteKey
6
+ }) => {
7
+ const mode = getTestSiteKeyMode(siteKey);
8
+ useEffect(() => {
9
+ if (mode !== null) {
10
+ console.warn(
11
+ `[Procaptcha] WARNING: site key "${siteKey}" is a TEST key that ALWAYS ${mode === TestSiteKeyMode.Pass ? "PASSES" : "FAILS"}. Never use it in production.`
12
+ );
13
+ }
14
+ }, [mode, siteKey]);
15
+ if (mode === null) {
16
+ return null;
17
+ }
18
+ const action = mode === TestSiteKeyMode.Pass ? "ALWAYS PASSES" : "ALWAYS FAILS";
19
+ return (
20
+ // biome-ignore lint/a11y/useSemanticElements: the "alert" role has no native HTML element equivalent
21
+ /* @__PURE__ */ jsx(
22
+ "div",
23
+ {
24
+ role: "alert",
25
+ "data-cy": "test-mode-banner",
26
+ css: {
27
+ width: "100%",
28
+ boxSizing: "border-box",
29
+ padding: "6px 10px",
30
+ backgroundColor: "#fff3cd",
31
+ color: "#664d03",
32
+ border: "1px solid #ffe69c",
33
+ borderRadius: "4px",
34
+ fontSize: "11px",
35
+ lineHeight: "1.3",
36
+ fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
37
+ textAlign: "center"
38
+ },
39
+ children: `⚠ Test mode: this site key ${action}. Do not use in production.`
40
+ }
41
+ )
42
+ );
43
+ };
44
+ export {
45
+ TestModeBanner,
46
+ TestModeBanner as default
47
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestModeBanner.js","sourceRoot":"","sources":["../../src/reactComponents/TestModeBanner.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAW,SAAS,EAAE,MAAM,OAAO,CAAC;AAU3C,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EACvD,OAAO,GACc,EAAE,EAAE;IACzB,MAAM,IAAI,GAA2B,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CACX,mCAAmC,OAAO,+BACzC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAC5C,+BAA+B,CAC/B,CAAC;QACH,CAAC;IACF,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,MAAM,GACX,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC;IAElE,OAAO,CAEN,cACC,IAAI,EAAC,OAAO,aACJ,kBAAkB,EAC1B,GAAG,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,UAAU;YACnB,eAAe,EAAE,SAAS;YAC1B,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,mBAAmB;YAC3B,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,KAAK;YACjB,UAAU,EACT,mEAAmE;YACpE,SAAS,EAAE,QAAQ;SACnB,YAEA,8BAA8B,MAAM,6BAA6B,GAC7D,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ProcaptchaState, ProcaptchaStateUpdateFn } from "@prosopo/types";
2
+ type useRefType = <T>(defaultValue: T) => {
3
+ current: T;
4
+ };
5
+ type useStateType = <T>(defaultValue: T) => [T, (value: T) => void];
6
+ export declare const buildUpdateState: (state: ProcaptchaState, onStateUpdate: ProcaptchaStateUpdateFn) => (nextState: Partial<ProcaptchaState>) => void;
7
+ export declare const useProcaptcha: (useState: useStateType, useRef: useRefType) => [ProcaptchaState, ProcaptchaStateUpdateFn];
8
+ export {};
9
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/state/builder.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAIX,eAAe,EACf,uBAAuB,EAEvB,MAAM,gBAAgB,CAAC;AAExB,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AACzD,KAAK,YAAY,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC;AAEpE,eAAO,MAAM,gBAAgB,UACpB,eAAe,iBAAiB,uBAAuB,iBACnD,OAAO,CAAC,eAAe,CAAC,SAMnC,CAAC;AAoBH,eAAO,MAAM,aAAa,aACf,YAAY,UACd,UAAU,KAChB,CAAC,eAAe,EAAE,uBAAuB,CAgF3C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/state/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=defaultCallbacks.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultCallbacks.test.d.ts","sourceRoot":"","sources":["../../src/tests/defaultCallbacks.test.ts"],"names":[],"mappings":""}