@prosopo/client-bundle-example 2.5.3 → 2.7.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.
Files changed (107) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/assets/ProcaptchaWidget-3gKvjeiH.js +636 -0
  3. package/dist/assets/ProcaptchaWidget-D6-M7iAv.js +360 -0
  4. package/dist/assets/Signer-DP9drQ55.js +23 -0
  5. package/dist/assets/_commonjsHelpers-DaMA6jEr.js +8 -0
  6. package/dist/assets/asU8a-DCECA0Qe.js +9 -0
  7. package/dist/assets/bip39-BQoZog_M.js +365 -0
  8. package/dist/assets/browser-ponyfill-Dy1JBTMg.js +339 -0
  9. package/dist/assets/captchaComponentProvider-BW2eXmc3.js +1242 -0
  10. package/dist/assets/captchaRenderer-B_MgGzr9.js +70 -0
  11. package/dist/assets/components.d.ts +5 -0
  12. package/dist/assets/components.d.ts.map +1 -0
  13. package/dist/assets/emotion-element-5486c51c.browser.esm-CCAJ8JId.js +1805 -0
  14. package/dist/assets/fp.esm-DYWeNGcH.js +1654 -0
  15. package/dist/assets/frictionless-ZgzyuneX.js +1 -0
  16. package/dist/assets/hash-BR0YLxPF.js +1268 -0
  17. package/dist/assets/i18nFrontend-CsPT71ro.js +2273 -0
  18. package/dist/assets/index-2or4-1WF.js +596 -0
  19. package/dist/assets/index-BCjHZ8o6.js +5416 -0
  20. package/dist/assets/index-BWsu-rGU.js +1 -0
  21. package/dist/assets/index-BYUYvvuq.js +81 -0
  22. package/dist/assets/index-BjRdPnnE.js +1198 -0
  23. package/dist/assets/index-QVME9Prx.js +32 -0
  24. package/dist/assets/index-WqEmiYQ_.js +4386 -0
  25. package/dist/assets/index.d.ts +16 -0
  26. package/dist/assets/index.d.ts.map +1 -0
  27. package/dist/assets/locales/ar/translation.json +56 -0
  28. package/dist/assets/locales/az/translation.json +56 -0
  29. package/dist/assets/locales/cs/translation.json +56 -0
  30. package/dist/assets/locales/de/translation.json +56 -0
  31. package/dist/assets/locales/el/translation.json +56 -0
  32. package/dist/assets/locales/en/translation.json +56 -0
  33. package/dist/assets/locales/es/translation.json +56 -0
  34. package/dist/assets/locales/fi/translation.json +56 -0
  35. package/dist/assets/locales/fr/translation.json +56 -0
  36. package/dist/assets/locales/hi/translation.json +56 -0
  37. package/dist/assets/locales/hu/translation.json +56 -0
  38. package/dist/assets/locales/id/translation.json +56 -0
  39. package/dist/assets/locales/it/translation.json +56 -0
  40. package/dist/assets/locales/ja/translation.json +56 -0
  41. package/dist/assets/locales/jv/translation.json +56 -0
  42. package/dist/assets/locales/ko/translation.json +56 -0
  43. package/dist/assets/locales/ml/translation.json +56 -0
  44. package/dist/assets/locales/ms/translation.json +56 -0
  45. package/dist/assets/locales/nl/translation.json +56 -0
  46. package/dist/assets/locales/no/translation.json +56 -0
  47. package/dist/assets/locales/pl/translation.json +56 -0
  48. package/dist/assets/locales/pt/translation.json +56 -0
  49. package/dist/assets/locales/pt-br/translation.json +56 -0
  50. package/dist/assets/locales/ro/translation.json +56 -0
  51. package/dist/assets/locales/ru/translation.json +56 -0
  52. package/dist/assets/locales/sr/translation.json +56 -0
  53. package/dist/assets/locales/sv/translation.json +56 -0
  54. package/dist/assets/locales/th/translation.json +56 -0
  55. package/dist/assets/locales/tr/translation.json +56 -0
  56. package/dist/assets/locales/uk/translation.json +56 -0
  57. package/dist/assets/locales/vi/translation.json +56 -0
  58. package/dist/assets/locales/zh-cn/translation.json +56 -0
  59. package/dist/assets/pow-BW3QYcgP.js +1 -0
  60. package/dist/assets/procaptcha.bundle.js +7 -0
  61. package/dist/assets/spread-DEmVz7RJ.js +15 -0
  62. package/dist/assets/tests/util/captchaType.test.d.ts +2 -0
  63. package/dist/assets/tests/util/captchaType.test.d.ts.map +1 -0
  64. package/dist/assets/tests/util/config.test.d.ts +2 -0
  65. package/dist/assets/tests/util/config.test.d.ts.map +1 -0
  66. package/dist/assets/tests/util/renderLogic.test.d.ts +2 -0
  67. package/dist/assets/tests/util/renderLogic.test.d.ts.map +1 -0
  68. package/dist/assets/toU8a-C68WUzs_.js +24 -0
  69. package/dist/assets/translations-DEL070wJ.js +2918 -0
  70. package/dist/assets/useTranslation-BPbGzrhj.js +158 -0
  71. package/dist/assets/util/captcha/captchaComponentProvider.d.ts +8 -0
  72. package/dist/assets/util/captcha/captchaComponentProvider.d.ts.map +1 -0
  73. package/dist/assets/util/captcha/captchaComponentsList.d.ts +6 -0
  74. package/dist/assets/util/captcha/captchaComponentsList.d.ts.map +1 -0
  75. package/dist/assets/util/captcha/captchaProps.d.ts +9 -0
  76. package/dist/assets/util/captcha/captchaProps.d.ts.map +1 -0
  77. package/dist/assets/util/captcha/captchaRenderer.d.ts +24 -0
  78. package/dist/assets/util/captcha/captchaRenderer.d.ts.map +1 -0
  79. package/dist/assets/util/captcha/captchaType.d.ts +2 -0
  80. package/dist/assets/util/captcha/captchaType.d.ts.map +1 -0
  81. package/dist/assets/util/captcha/components/frictionlessCaptcha.d.ts +4 -0
  82. package/dist/assets/util/captcha/components/frictionlessCaptcha.d.ts.map +1 -0
  83. package/dist/assets/util/captcha/components/imageCaptcha.d.ts +4 -0
  84. package/dist/assets/util/captcha/components/imageCaptcha.d.ts.map +1 -0
  85. package/dist/assets/util/captcha/components/powCaptcha.d.ts +4 -0
  86. package/dist/assets/util/captcha/components/powCaptcha.d.ts.map +1 -0
  87. package/dist/assets/util/config.d.ts +6 -0
  88. package/dist/assets/util/config.d.ts.map +1 -0
  89. package/dist/assets/util/configCreator.d.ts +5 -0
  90. package/dist/assets/util/configCreator.d.ts.map +1 -0
  91. package/dist/assets/util/language.d.ts +3 -0
  92. package/dist/assets/util/language.d.ts.map +1 -0
  93. package/dist/assets/util/timeout.d.ts +3 -0
  94. package/dist/assets/util/timeout.d.ts.map +1 -0
  95. package/dist/assets/util/widgetFactory.d.ts +18 -0
  96. package/dist/assets/util/widgetFactory.d.ts.map +1 -0
  97. package/dist/assets/util/widgetThemeResolver.d.ts +9 -0
  98. package/dist/assets/util/widgetThemeResolver.d.ts.map +1 -0
  99. package/dist/frictionless.html +1 -2
  100. package/dist/index.html +4 -6
  101. package/dist/plugins/navigation-injector.ts +1 -1
  102. package/dist/pow.html +1 -2
  103. package/package.json +10 -5
  104. package/dist/assets/captchaType-CYBmmAZe.js +0 -1
  105. package/dist/assets/frictionless-xzpEe3JN.js +0 -1
  106. package/dist/assets/index-DN-EY_8b.js +0 -1
  107. package/dist/assets/pow-DpBboekQ.js +0 -1
@@ -0,0 +1,158 @@
1
+ import { n as X, r as p } from "./emotion-element-5486c51c.browser.esm-CCAJ8JId.js";
2
+ import { s as Y } from "./toU8a-C68WUzs_.js";
3
+ import { g as q, a as B, i as K } from "./i18nFrontend-CsPT71ro.js";
4
+ function re(e) {
5
+ return X(Y(e));
6
+ }
7
+ const te = (e) => new Promise((s) => setTimeout(s, e)), ce = (e, s) => (o) => {
8
+ Object.assign(e, o), s(o);
9
+ }, P = (e, s) => {
10
+ const o = e(s), a = (n) => {
11
+ o.current = n;
12
+ };
13
+ return [o.current, a];
14
+ }, ue = (e, s) => {
15
+ const [o, a] = e(!1), [t, n] = e(0), [l, N] = e([]), [h, r] = P(s, void 0), [g, A] = e(!1), [E, b] = e(void 0), [I, w] = e(!1), [T, M] = e(void 0), [m, C] = e(void 0), [v, O] = P(s, void 0), [z, L] = P(s, void 0), [c, u] = P(s, void 0), [d, f] = e(!1), [F, _] = e(0), [$, G] = e(void 0), [J, W] = e(void 0);
16
+ return [
17
+ {
18
+ isHuman: o,
19
+ index: t,
20
+ solutions: l,
21
+ captchaApi: h,
22
+ showModal: g,
23
+ challenge: E,
24
+ loading: I,
25
+ account: T,
26
+ dappAccount: m,
27
+ submission: v,
28
+ timeout: z,
29
+ successfullChallengeTimeout: c,
30
+ sendData: d,
31
+ attemptCount: F,
32
+ error: $,
33
+ sessionId: J
34
+ },
35
+ (i) => {
36
+ i.account !== void 0 && M(i.account), i.isHuman !== void 0 && a(i.isHuman), i.index !== void 0 && n(i.index), i.solutions !== void 0 && N(i.solutions.slice()), i.captchaApi !== void 0 && r(i.captchaApi), i.showModal !== void 0 && A(i.showModal), i.challenge !== void 0 && b(i.challenge), i.loading !== void 0 && w(i.loading), i.showModal !== void 0 && A(i.showModal), i.dappAccount !== void 0 && C(i.dappAccount), i.submission !== void 0 && O(i.submission), i.timeout !== void 0 && L(i.timeout), i.successfullChallengeTimeout !== void 0 && u(i.timeout), i.sendData !== void 0 && f(i.sendData), i.attemptCount !== void 0 && _(i.attemptCount), i.error !== void 0 && G(i.error), i.sessionId !== void 0 && W(i.sessionId);
37
+ }
38
+ ];
39
+ }, Q = (e, s, o, a) => {
40
+ var n, l, N, h;
41
+ const t = [o, {
42
+ code: s,
43
+ ...a || {}
44
+ }];
45
+ if ((l = (n = e == null ? void 0 : e.services) == null ? void 0 : n.logger) != null && l.forward)
46
+ return e.services.logger.forward(t, "warn", "react-i18next::", !0);
47
+ y(t[0]) && (t[0] = `react-i18next:: ${t[0]}`), (h = (N = e == null ? void 0 : e.services) == null ? void 0 : N.logger) != null && h.warn ? e.services.logger.warn(...t) : console != null && console.warn && [...t];
48
+ }, U = {}, H = (e, s, o, a) => {
49
+ y(o) && U[o] || (y(o) && (U[o] = /* @__PURE__ */ new Date()), Q(e, s, o, a));
50
+ }, D = (e, s) => () => {
51
+ if (e.isInitialized)
52
+ s();
53
+ else {
54
+ const o = () => {
55
+ setTimeout(() => {
56
+ e.off("initialized", o);
57
+ }, 0), s();
58
+ };
59
+ e.on("initialized", o);
60
+ }
61
+ }, R = (e, s, o) => {
62
+ e.loadNamespaces(s, D(e, o));
63
+ }, j = (e, s, o, a) => {
64
+ if (y(o) && (o = [o]), e.options.preload && e.options.preload.indexOf(s) > -1) return R(e, o, a);
65
+ o.forEach((t) => {
66
+ e.options.ns.indexOf(t) < 0 && e.options.ns.push(t);
67
+ }), e.loadLanguages(s, D(e, a));
68
+ }, Z = (e, s, o = {}) => !s.languages || !s.languages.length ? (H(s, "NO_LANGUAGES", "i18n.languages were undefined or empty", {
69
+ languages: s.languages
70
+ }), !0) : s.hasLoadedNamespace(e, {
71
+ lng: o.lng,
72
+ precheck: (a, t) => {
73
+ var n;
74
+ if (((n = o.bindI18n) == null ? void 0 : n.indexOf("languageChanging")) > -1 && a.services.backendConnector.backend && a.isLanguageChangingTo && !t(a.isLanguageChangingTo, e)) return !1;
75
+ }
76
+ }), y = (e) => typeof e == "string", V = (e) => typeof e == "object" && e !== null, x = p.createContext();
77
+ class S {
78
+ constructor() {
79
+ this.usedNamespaces = {};
80
+ }
81
+ addUsedNamespaces(s) {
82
+ s.forEach((o) => {
83
+ this.usedNamespaces[o] || (this.usedNamespaces[o] = !0);
84
+ });
85
+ }
86
+ getUsedNamespaces() {
87
+ return Object.keys(this.usedNamespaces);
88
+ }
89
+ }
90
+ const ee = (e, s) => {
91
+ const o = p.useRef();
92
+ return p.useEffect(() => {
93
+ o.current = e;
94
+ }, [e, s]), o.current;
95
+ }, k = (e, s, o, a) => e.getFixedT(s, o, a), se = (e, s, o, a) => p.useCallback(k(e, s, o, a), [e, s, o, a]), ne = (e, s = {}) => {
96
+ var v, O, z, L;
97
+ const {
98
+ i18n: o
99
+ } = s, {
100
+ i18n: a,
101
+ defaultNS: t
102
+ } = p.useContext(x) || {}, n = o || a || q();
103
+ if (n && !n.reportNamespaces && (n.reportNamespaces = new S()), !n) {
104
+ H(n, "NO_I18NEXT_INSTANCE", "useTranslation: You will need to pass in an i18next instance by using initReactI18next");
105
+ const c = (d, f) => y(f) ? f : V(f) && y(f.defaultValue) ? f.defaultValue : Array.isArray(d) ? d[d.length - 1] : d, u = [c, {}, !1];
106
+ return u.t = c, u.i18n = {}, u.ready = !1, u;
107
+ }
108
+ (v = n.options.react) != null && v.wait && H(n, "DEPRECATED_OPTION", "useTranslation: It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");
109
+ const l = {
110
+ ...B(),
111
+ ...n.options.react,
112
+ ...s
113
+ }, {
114
+ useSuspense: N,
115
+ keyPrefix: h
116
+ } = l;
117
+ let r = e || t || ((O = n.options) == null ? void 0 : O.defaultNS);
118
+ r = y(r) ? [r] : r || ["translation"], (L = (z = n.reportNamespaces).addUsedNamespaces) == null || L.call(z, r);
119
+ const g = (n.isInitialized || n.initializedStoreOnce) && r.every((c) => Z(c, n, l)), A = se(n, s.lng || null, l.nsMode === "fallback" ? r : r[0], h), E = () => A, b = () => k(n, s.lng || null, l.nsMode === "fallback" ? r : r[0], h), [I, w] = p.useState(E);
120
+ let T = r.join();
121
+ s.lng && (T = `${s.lng}${T}`);
122
+ const M = ee(T), m = p.useRef(!0);
123
+ p.useEffect(() => {
124
+ const {
125
+ bindI18n: c,
126
+ bindI18nStore: u
127
+ } = l;
128
+ m.current = !0, !g && !N && (s.lng ? j(n, s.lng, r, () => {
129
+ m.current && w(b);
130
+ }) : R(n, r, () => {
131
+ m.current && w(b);
132
+ })), g && M && M !== T && m.current && w(b);
133
+ const d = () => {
134
+ m.current && w(b);
135
+ };
136
+ return c && (n == null || n.on(c, d)), u && (n == null || n.store.on(u, d)), () => {
137
+ m.current = !1, n && (c == null || c.split(" ").forEach((f) => n.off(f, d))), u && n && u.split(" ").forEach((f) => n.store.off(f, d));
138
+ };
139
+ }, [n, T]), p.useEffect(() => {
140
+ m.current && g && w(E);
141
+ }, [n, h, g]);
142
+ const C = [I, n, g];
143
+ if (C.t = I, C.i18n = n, C.ready = g, g || !g && !N) return C;
144
+ throw new Promise((c) => {
145
+ s.lng ? j(n, s.lng, r, () => c()) : R(n, r, () => c());
146
+ });
147
+ };
148
+ function de(e) {
149
+ const s = K();
150
+ return ne("translation", { i18n: s, ...e });
151
+ }
152
+ export {
153
+ te as a,
154
+ ce as b,
155
+ ue as c,
156
+ re as s,
157
+ de as u
158
+ };
@@ -0,0 +1,8 @@
1
+ import type { CaptchaType } from "@prosopo/types";
2
+ import type { ReactNode } from "react";
3
+ import type { CaptchaProps } from "./captchaProps.js";
4
+ declare class CaptchaComponentProvider {
5
+ getCaptchaComponent(captchaType: CaptchaType, captchaProps: CaptchaProps): ReactNode;
6
+ }
7
+ export { CaptchaComponentProvider };
8
+ //# sourceMappingURL=captchaComponentProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captchaComponentProvider.d.ts","sourceRoot":"","sources":["../../../../src/util/captcha/captchaComponentProvider.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,cAAM,wBAAwB;IACtB,mBAAmB,CACzB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,GACxB,SAAS;CAaZ;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { CaptchaType } from "@prosopo/types";
2
+ import type React from "react";
3
+ import type { CaptchaProps } from "./captchaProps.js";
4
+ declare const captchaComponentsList: Record<CaptchaType, React.ComponentType<CaptchaProps>>;
5
+ export { captchaComponentsList };
6
+ //# sourceMappingURL=captchaComponentsList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captchaComponentsList.d.ts","sourceRoot":"","sources":["../../../../src/util/captcha/captchaComponentsList.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,QAAA,MAAM,qBAAqB,EAAE,MAAM,CAClC,WAAW,EACX,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAKjC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Ti18n } from "@prosopo/locale";
2
+ import type { ProcaptchaCallbacks, ProcaptchaClientConfigInput } from "@prosopo/types";
3
+ interface CaptchaProps {
4
+ config: ProcaptchaClientConfigInput;
5
+ callbacks: ProcaptchaCallbacks;
6
+ i18n: Ti18n;
7
+ }
8
+ export type { CaptchaProps };
9
+ //# sourceMappingURL=captchaProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captchaProps.d.ts","sourceRoot":"","sources":["../../../../src/util/captcha/captchaProps.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACX,mBAAmB,EACnB,2BAA2B,EAC3B,MAAM,gBAAgB,CAAC;AAExB,UAAU,YAAY;IACrB,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,IAAI,EAAE,KAAK,CAAC;CACZ;AAED,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type EmotionCache } from "@emotion/cache";
2
+ import type { Ti18n } from "@prosopo/locale";
3
+ import type { Callbacks, ProcaptchaClientConfigOutput, ProcaptchaRenderOptions } from "@prosopo/types";
4
+ import type { CaptchaType } from "@prosopo/types";
5
+ import type { ReactNode } from "react";
6
+ import { type Root } from "react-dom/client";
7
+ import type { CaptchaComponentProvider } from "./captchaComponentProvider.js";
8
+ interface RenderSettings {
9
+ identifierPrefix: string;
10
+ emotionCacheKey: string;
11
+ webComponentTag: string;
12
+ defaultCaptchaType: CaptchaType;
13
+ }
14
+ declare class CaptchaRenderer {
15
+ private readonly captchaComponentProvider;
16
+ constructor(captchaComponentProvider: CaptchaComponentProvider);
17
+ renderCaptcha(settings: RenderSettings, container: HTMLElement, renderOptions: ProcaptchaRenderOptions, callbacks: Callbacks, isWeb2: boolean, i18n: Ti18n, invisible?: boolean): Root;
18
+ protected readAndValidateSettings(element: Element, config: ProcaptchaClientConfigOutput, renderOptions: ProcaptchaRenderOptions): void;
19
+ protected makeEmotionCache(cacheKey: string, container: HTMLElement): EmotionCache;
20
+ protected createReactRoot(container: HTMLElement, identifierPrefix: string): Root;
21
+ protected renderCaptchaComponent(reactRoot: Root, emotionCache: EmotionCache, captchaComponent: ReactNode): void;
22
+ }
23
+ export { CaptchaRenderer };
24
+ //# sourceMappingURL=captchaRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captchaRenderer.d.ts","sourceRoot":"","sources":["../../../../src/util/captcha/captchaRenderer.tsx"],"names":[],"mappings":"AAcA,OAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EACX,SAAS,EACT,4BAA4B,EAC5B,uBAAuB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,kBAAkB,CAAC;AAIzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E,UAAU,cAAc;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,WAAW,CAAC;CAChC;AAED,cAAM,eAAe;IACpB,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA2B;gBAExD,wBAAwB,EAAE,wBAAwB;IAIvD,aAAa,CACnB,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,WAAW,EACtB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,KAAK,EACX,SAAS,UAAQ,GACf,IAAI;IAsCP,SAAS,CAAC,uBAAuB,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,4BAA4B,EACpC,aAAa,EAAE,uBAAuB,GACpC,IAAI;IAKP,SAAS,CAAC,gBAAgB,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,WAAW,GACpB,YAAY;IAQf,SAAS,CAAC,eAAe,CACxB,SAAS,EAAE,WAAW,EACtB,gBAAgB,EAAE,MAAM,GACtB,IAAI;IAMP,SAAS,CAAC,sBAAsB,CAC/B,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,SAAS,GACzB,IAAI;CAKP;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getCaptchaType(elements: Element[]): any;
2
+ //# sourceMappingURL=captchaType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captchaType.d.ts","sourceRoot":"","sources":["../../../../src/util/captcha/captchaType.ts"],"names":[],"mappings":"AAuBA,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,OAQjD"}
@@ -0,0 +1,4 @@
1
+ import type { CaptchaProps } from "../captchaProps.js";
2
+ declare const FrictionlessCaptcha: (props: CaptchaProps) => import("react/jsx-runtime").JSX.Element;
3
+ export { FrictionlessCaptcha };
4
+ //# sourceMappingURL=frictionlessCaptcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frictionlessCaptcha.d.ts","sourceRoot":"","sources":["../../../../../src/util/captcha/components/frictionlessCaptcha.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,mBAAmB,UAAW,YAAY,4CAkB/C,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CaptchaProps } from "../captchaProps.js";
2
+ declare const ImageCaptcha: (props: CaptchaProps) => import("react/jsx-runtime").JSX.Element;
3
+ export { ImageCaptcha };
4
+ //# sourceMappingURL=imageCaptcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"imageCaptcha.d.ts","sourceRoot":"","sources":["../../../../../src/util/captcha/components/imageCaptcha.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,YAAY,UAAW,YAAY,4CAUxC,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CaptchaProps } from "../captchaProps.js";
2
+ declare const PowCaptcha: (props: CaptchaProps) => import("react/jsx-runtime").JSX.Element;
3
+ export { PowCaptcha };
4
+ //# sourceMappingURL=powCaptcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"powCaptcha.d.ts","sourceRoot":"","sources":["../../../../../src/util/captcha/components/powCaptcha.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,QAAA,MAAM,UAAU,UAAW,YAAY,4CAUtC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const getProcaptchaScript: (name: string) => HTMLScriptElement | null;
2
+ export declare const extractParams: (name: string) => {
3
+ onloadUrlCallback: string | undefined;
4
+ renderExplicit: string | undefined;
5
+ };
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/util/config.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,mBAAmB,SAAU,MAAM,6BACoB,CAAC;AAErE,eAAO,MAAM,aAAa,SAAU,MAAM;;;CAWzC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Languages } from "@prosopo/locale";
2
+ import { type ProcaptchaClientConfigOutput } from "@prosopo/types";
3
+ declare function createConfig(siteKey?: string, theme?: "light" | "dark", language?: (typeof Languages)[keyof typeof Languages], web2?: boolean, invisible?: boolean): ProcaptchaClientConfigOutput;
4
+ export { createConfig };
5
+ //# sourceMappingURL=configCreator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configCreator.d.ts","sourceRoot":"","sources":["../../../src/util/configCreator.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAEN,KAAK,4BAA4B,EAEjC,MAAM,gBAAgB,CAAC;AAExB,iBAAS,YAAY,CACpB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,OAAO,GAAG,MAAgB,EACjC,QAAQ,CAAC,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,EACrD,IAAI,UAAO,EACX,SAAS,UAAQ,GACf,4BAA4B,CAqB9B;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProcaptchaClientConfigInput, ProcaptchaRenderOptions } from "@prosopo/types";
2
+ export declare const setLanguage: (renderOptions: ProcaptchaRenderOptions | undefined, element: Element, config: ProcaptchaClientConfigInput) => void;
3
+ //# sourceMappingURL=language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../../../src/util/language.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACX,2BAA2B,EAC3B,uBAAuB,EACvB,MAAM,gBAAgB,CAAC;AAcxB,eAAO,MAAM,WAAW,kBACR,uBAAuB,GAAG,SAAS,WACzC,OAAO,UACR,2BAA2B,SAQnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ProcaptchaClientConfigOutput, ProcaptchaRenderOptions } from "@prosopo/types";
2
+ export declare const setValidChallengeLength: (renderOptions: ProcaptchaRenderOptions | undefined, element: Element, config: ProcaptchaClientConfigOutput) => void;
3
+ //# sourceMappingURL=timeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeout.d.ts","sourceRoot":"","sources":["../../../src/util/timeout.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACX,4BAA4B,EAC5B,uBAAuB,EACvB,MAAM,gBAAgB,CAAC;AASxB,eAAO,MAAM,uBAAuB,kBACpB,uBAAuB,GAAG,SAAS,WACzC,OAAO,UACR,4BAA4B,KAClC,IAaF,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Ti18n } from "@prosopo/locale";
2
+ import { type Callbacks, type ProcaptchaRenderOptions } from "@prosopo/types";
3
+ import type { Root } from "react-dom/client";
4
+ import type { CaptchaRenderer } from "./captcha/captchaRenderer.js";
5
+ import type { WidgetThemeResolver } from "./widgetThemeResolver.js";
6
+ declare class WidgetFactory {
7
+ private readonly widgetThemeResolver;
8
+ private captchaRenderer;
9
+ private _i18n;
10
+ constructor(widgetThemeResolver: WidgetThemeResolver);
11
+ get i18n(): Ti18n;
12
+ createWidgets(containers: Element[], renderOptions: ProcaptchaRenderOptions, isWeb2?: boolean, invisible?: boolean): Promise<Root[]>;
13
+ createWidget(container: Element, renderOptions: ProcaptchaRenderOptions, callbacks: Callbacks, isWeb2?: boolean, invisible?: boolean): Promise<Root>;
14
+ protected getCaptchaRenderer(): Promise<CaptchaRenderer>;
15
+ protected createCaptchaRenderer(): Promise<CaptchaRenderer>;
16
+ }
17
+ export { WidgetFactory };
18
+ //# sourceMappingURL=widgetFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetFactory.d.ts","sourceRoot":"","sources":["../../../src/util/widgetFactory.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAK7C,OAAO,EACN,KAAK,SAAS,EAGd,KAAK,uBAAuB,EAC5B,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,cAAM,aAAa;IAKjB,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJrC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,KAAK,CAAsB;gBAGjB,mBAAmB,EAAE,mBAAmB;IAG1D,IAAI,IAAI,IAAI,KAAK,CAKhB;IAEY,aAAa,CACzB,UAAU,EAAE,OAAO,EAAE,EACrB,aAAa,EAAE,uBAAuB,EACtC,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,IAAI,EAAE,CAAC;IAgBL,YAAY,CACxB,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,uBAAuB,EACtC,SAAS,EAAE,SAAS,EACpB,MAAM,UAAO,EACb,SAAS,UAAQ,GACf,OAAO,CAAC,IAAI,CAAC;cA+CA,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;cAY9C,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC;CAUjE;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ProcaptchaRenderOptions } from "@prosopo/types";
2
+ declare class WidgetThemeResolver {
3
+ private readonly themesSet;
4
+ private readonly defaultTheme;
5
+ resolveWidgetTheme(element: Element, renderOptions: ProcaptchaRenderOptions): "light" | "dark";
6
+ protected validateTheme(themeAttribute: string): "light" | "dark";
7
+ }
8
+ export { WidgetThemeResolver };
9
+ //# sourceMappingURL=widgetThemeResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgetThemeResolver.d.ts","sourceRoot":"","sources":["../../../src/util/widgetThemeResolver.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,cAAM,mBAAmB;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IAEjC,kBAAkB,CACxB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,uBAAuB,GACpC,OAAO,GAAG,MAAM;IASnB,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM;CAKjE;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -156,9 +156,8 @@
156
156
  }
157
157
  }
158
158
  </style>
159
- <script type="module" crossorigin src="/assets/frictionless-xzpEe3JN.js"></script>
159
+ <script type="module" crossorigin src="/assets/frictionless-ZgzyuneX.js"></script>
160
160
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-B5Qt9EMX.js">
161
- <link rel="modulepreload" crossorigin href="/assets/captchaType-CYBmmAZe.js">
162
161
  </head>
163
162
  <body>
164
163
 
package/dist/index.html CHANGED
@@ -4,11 +4,8 @@
4
4
  <link href="https://cdn.muicss.com/mui-0.10.3/css/mui.min.css" rel="stylesheet" type="text/css"/>
5
5
  <title>Procaptcha demo: Implicit Rendering</title>
6
6
  <script id="procaptchaScript" type="module" src="https://staging-js.prosopo.io/js/procaptcha.bundle.js" async defer></script>
7
- <script type="text/javascript">
8
- window.onCaptchaFailed = function () {
9
- console.log('Challenge failed')
10
- }
11
- </script>
7
+
8
+
12
9
 
13
10
 
14
11
  <style>
@@ -157,7 +154,7 @@
157
154
  }
158
155
  }
159
156
  </style>
160
- <script type="module" crossorigin src="/assets/index-DN-EY_8b.js"></script>
157
+ <script type="module" crossorigin src="/assets/index-BWsu-rGU.js"></script>
161
158
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-B5Qt9EMX.js">
162
159
  </head>
163
160
  <body>
@@ -278,6 +275,7 @@
278
275
  data-theme="light"
279
276
  data-sitekey="undefined"
280
277
  data-failed-callback="onCaptchaFailed"
278
+ data-callback="onCaptchaVerified"
281
279
  data-captcha-type="image"
282
280
  ></div>
283
281
  </div>
@@ -12,7 +12,7 @@
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
14
  // Vite plugin to inject navigation into HTML files
15
- import fs from "node:fs";
15
+
16
16
  import path from "node:path";
17
17
  import {
18
18
  type IndexHtmlTransformContext,
package/dist/pow.html CHANGED
@@ -156,9 +156,8 @@
156
156
  }
157
157
  }
158
158
  </style>
159
- <script type="module" crossorigin src="/assets/pow-DpBboekQ.js"></script>
159
+ <script type="module" crossorigin src="/assets/pow-BW3QYcgP.js"></script>
160
160
  <link rel="modulepreload" crossorigin href="/assets/modulepreload-polyfill-B5Qt9EMX.js">
161
- <link rel="modulepreload" crossorigin href="/assets/captchaType-CYBmmAZe.js">
162
161
  </head>
163
162
  <body>
164
163
 
package/package.json CHANGED
@@ -13,18 +13,23 @@
13
13
  "start": "vite serve ./src --port 9232 --config vite.config.ts",
14
14
  "clean": "echo 'nothing to clean'"
15
15
  },
16
- "version": "2.5.3",
16
+ "version": "2.7.0",
17
17
  "devDependencies": {
18
- "@prosopo/dotenv": "2.5.3",
18
+ "@prosopo/dotenv": "2.6.0",
19
19
  "@types/node": "22.5.5",
20
- "@vitest/coverage-v8": "2.1.1",
20
+ "@vitest/coverage-v8": "3.0.9",
21
21
  "concurrently": "9.0.1",
22
22
  "del-cli": "6.0.0",
23
23
  "npm-run-all": "2.1.0",
24
24
  "tslib": "2.7.0",
25
25
  "tsx": "4.19.1",
26
26
  "typescript": "5.6.2",
27
- "vite": "5.4.6",
28
- "vitest": "2.1.1"
27
+ "vite": "6.2.3",
28
+ "vitest": "3.0.9"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/prosopo/captcha.git",
33
+ "directory": "demos/client-bundle-example"
29
34
  }
30
35
  }
@@ -1 +0,0 @@
1
- var o;(function(i){i.image="image",i.pow="pow",i.frictionless="frictionless"})(o||(o={}));export{o as C};
@@ -1 +0,0 @@
1
- import"./modulepreload-polyfill-B5Qt9EMX.js";import{render as l}from"https://staging-js.prosopo.io/js/procaptcha.bundle.js";import{C as i}from"./captchaType-CYBmmAZe.js";window.addEventListener("load",()=>{window.setIsError=e=>{const o=document.getElementById("messageContainer");o.style.color=e?"red":"black",o.style.display="block"},window.setMessage=e=>{document.getElementById("message").innerText=e},window.onLoggedIn=e=>{const o=new URL("/private",config.serverUrl).href;console.log("getting private resource with token ",e,"at",o),fetch(o,{method:"GET",headers:{Origin:"http://localhost:9232","Content-Type":"application/json",Authorization:`Bearer ${e}`}}).then(async n=>{try{const s=await n.json();n.status===200&&setMessage(s.message)}catch(s){console.log(s)}}).catch(n=>{console.log(n)})},window.onActionHandler=()=>{const e=document.getElementsByName("procaptcha-response");if(!e.length){alert("Must complete captcha");return}const o=e[0].value,n={email:document.getElementById("email").value,name:document.getElementById("name").value,password:document.getElementById("password").value,"procaptcha-response":o},s=new URL("signup",void 0).href;console.log("posting to",s,"with payload",n),fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n),contentType:"application/json"}).then(t=>new Promise(a=>t.json().then(c=>a({status:t.status,ok:t.ok,json:c})))).then(async({status:t,json:a,ok:c})=>{console.log("status",t,"json",a.message,"ok",c),console.log("json",a);try{t!==200?(setIsError(!0),setMessage(a.message)):(setIsError(!1),setMessage(a.message))}catch(r){console.log(r)}}).catch(t=>{console.log(t),setIsError(!0),setMessage("Error: "+t)})},console.log("here")});function d(e){console.log("Captcha verified, output: "+JSON.stringify(e))}const g=document.getElementById("procaptcha-container");l(g,{siteKey:void 0,captchaType:i.frictionless,theme:"dark",callback:d,"failed-callback":function(){console.log("Challenge failed")}});
@@ -1 +0,0 @@
1
- import"./modulepreload-polyfill-B5Qt9EMX.js";window.addEventListener("load",()=>{window.setIsError=e=>{const o=document.getElementById("messageContainer");o.style.color=e?"red":"black",o.style.display="block"},window.setMessage=e=>{document.getElementById("message").innerText=e},window.onLoggedIn=e=>{const o=new URL("/private",config.serverUrl).href;console.log("getting private resource with token ",e,"at",o),fetch(o,{method:"GET",headers:{Origin:"http://localhost:9232","Content-Type":"application/json",Authorization:`Bearer ${e}`}}).then(async s=>{try{const n=await s.json();s.status===200&&setMessage(n.message)}catch(n){console.log(n)}}).catch(s=>{console.log(s)})},window.onActionHandler=()=>{const e=document.getElementsByName("procaptcha-response");if(!e.length){alert("Must complete captcha");return}const o=e[0].value,s={email:document.getElementById("email").value,name:document.getElementById("name").value,password:document.getElementById("password").value,"procaptcha-response":o},n=new URL("signup",void 0).href;console.log("posting to",n,"with payload",s),fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s),contentType:"application/json"}).then(t=>new Promise(a=>t.json().then(r=>a({status:t.status,ok:t.ok,json:r})))).then(async({status:t,json:a,ok:r})=>{console.log("status",t,"json",a.message,"ok",r),console.log("json",a);try{t!==200?(setIsError(!0),setMessage(a.message)):(setIsError(!1),setMessage(a.message))}catch(c){console.log(c)}}).catch(t=>{console.log(t),setIsError(!0),setMessage("Error: "+t)})},console.log("here")});
@@ -1 +0,0 @@
1
- import"./modulepreload-polyfill-B5Qt9EMX.js";import{C as h}from"./captchaType-CYBmmAZe.js";const p="modulepreload",y=function(o){return"/"+o},d={},E=function(i,c,g){let s=Promise.resolve();if(c&&c.length>0){document.getElementsByTagName("link");const e=document.querySelector("meta[property=csp-nonce]"),t=(e==null?void 0:e.nonce)||(e==null?void 0:e.getAttribute("nonce"));s=Promise.allSettled(c.map(n=>{if(n=y(n),n in d)return;d[n]=!0;const a=n.endsWith(".css"),u=a?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${n}"]${u}`))return;const r=document.createElement("link");if(r.rel=a?"stylesheet":p,a||(r.as="script"),r.crossOrigin="",r.href=n,t&&r.setAttribute("nonce",t),document.head.appendChild(r),a)return new Promise((m,f)=>{r.addEventListener("load",m),r.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${n}`)))})}))}function l(e){const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return s.then(e=>{for(const t of e||[])t.status==="rejected"&&l(t.reason);return i().catch(l)})};async function v(){const o=(await E(async()=>{const{render:c}=await import("https://staging-js.prosopo.io/js/procaptcha.bundle.js");return{render:c}},[])).render;console.log("Captcha loaded");const i=document.getElementById("procaptcha-container");o(i,{siteKey:void 0,theme:"dark",callback:w,captchaType:h.pow})}window.captchaLoaded=v;function w(o){console.log("Captcha verified, output: "+JSON.stringify(o))}