@multiplatform.one/gpg 6.0.2 → 6.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/GpgProvider.cjs +5 -3
- package/dist/cjs/GpgProvider.native.js +6 -3
- package/dist/cjs/GpgProvider.native.js.map +1 -1
- package/dist/esm/GpgProvider.mjs +6 -4
- package/dist/esm/GpgProvider.mjs.map +1 -1
- package/dist/esm/GpgProvider.native.js +7 -4
- package/dist/esm/GpgProvider.native.js.map +1 -1
- package/package.json +3 -3
- package/src/GpgProvider.tsx +11 -5
package/dist/cjs/GpgProvider.cjs
CHANGED
|
@@ -70,10 +70,12 @@ const GpgProvider = ({
|
|
|
70
70
|
refetchOnReconnect: false,
|
|
71
71
|
staleTime: Infinity
|
|
72
72
|
});
|
|
73
|
-
const
|
|
73
|
+
const buildMessageRef = (0, import_react.useRef)(buildMessage);
|
|
74
|
+
buildMessageRef.current = buildMessage;
|
|
75
|
+
const message = (0, import_react.useMemo)(() => nonce.data ? (buildMessageRef.current ?? defaultBuildMessage)({
|
|
74
76
|
nonce: nonce.data
|
|
75
|
-
}) : null, [nonce.data
|
|
76
|
-
const command = (0, import_react.useMemo)(() => message ? `{ printf %s '${message}' | gpg --detach-sign --armor; gpg --armor --export; }` : null, [message]);
|
|
77
|
+
}) : null, [nonce.data]);
|
|
78
|
+
const command = (0, import_react.useMemo)(() => message ? `{ printf %s '${message.replace(/'/g, "'\\''")}' | gpg --detach-sign --armor; gpg --armor --export; }` : null, [message]);
|
|
77
79
|
const signIn = async pastedBlob => {
|
|
78
80
|
const blob = pastedBlob.trim();
|
|
79
81
|
if (!blob.includes("-----BEGIN PGP SIGNATURE-----") || !blob.includes("-----BEGIN PGP PUBLIC KEY BLOCK-----")) {
|
|
@@ -80,13 +80,16 @@ var GpgProvider = function GpgProvider2(param) {
|
|
|
80
80
|
refetchOnReconnect: false,
|
|
81
81
|
staleTime: Infinity
|
|
82
82
|
});
|
|
83
|
+
var buildMessageRef = (0, import_react.useRef)(buildMessage);
|
|
84
|
+
buildMessageRef.current = buildMessage;
|
|
83
85
|
var message = (0, import_react.useMemo)(function () {
|
|
84
|
-
|
|
86
|
+
var _buildMessageRef_current;
|
|
87
|
+
return nonce.data ? ((_buildMessageRef_current = buildMessageRef.current) !== null && _buildMessageRef_current !== void 0 ? _buildMessageRef_current : defaultBuildMessage)({
|
|
85
88
|
nonce: nonce.data
|
|
86
89
|
}) : null;
|
|
87
|
-
}, [nonce.data
|
|
90
|
+
}, [nonce.data]);
|
|
88
91
|
var command = (0, import_react.useMemo)(function () {
|
|
89
|
-
return message ? `{ printf %s '${message}' | gpg --detach-sign --armor; gpg --armor --export; }` : null;
|
|
92
|
+
return message ? `{ printf %s '${message.replace(/'/g, "'\\''")}' | gpg --detach-sign --armor; gpg --armor --export; }` : null;
|
|
90
93
|
}, [message]);
|
|
91
94
|
var signIn = async function signIn2(pastedBlob) {
|
|
92
95
|
var blob = pastedBlob.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","GpgProvider_exports","__export","GPG_NONCE_QUERY_KEY","GpgProvider","module","exports","import_jsx_runtime","require","import_react","import_react_query","import_connectkit","import_GpgContext","b64","b642","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","param","nonce","location","host","origin","Date","toISOString","GpgProvider2","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","useState","GpgStatusState","READY","resetStatus","resetStatus2","useContext","GpgContext","Error","Context","useQuery","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","message","useMemo","data","command","signIn","signIn2","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","jsx","Provider"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,mBAAA;AAAAC,QAAA,CAAAD,mBAAA;EAAAE,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAV,
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","GpgProvider_exports","__export","GPG_NONCE_QUERY_KEY","GpgProvider","module","exports","import_jsx_runtime","require","import_react","import_react_query","import_connectkit","import_GpgContext","b64","b642","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","param","nonce","location","host","origin","Date","toISOString","GpgProvider2","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","useState","GpgStatusState","READY","resetStatus","resetStatus2","useContext","GpgContext","Error","Context","useQuery","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","buildMessageRef","useRef","current","message","useMemo","_buildMessageRef_current","data","command","replace","signIn","signIn2","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","jsx","Provider"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/GpgProvider.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useContext, useMemo, useState } from "react";
|
|
1
|
+
import { useContext, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
3
|
import { Context as ConnectKitContext } from "@multiplatform.one/connectkit";
|
|
4
4
|
import { GpgContext, GpgStatusState } from "./GpgContext.mjs";
|
|
@@ -42,10 +42,12 @@ const GpgProvider = ({
|
|
|
42
42
|
refetchOnReconnect: false,
|
|
43
43
|
staleTime: Infinity
|
|
44
44
|
});
|
|
45
|
-
const
|
|
45
|
+
const buildMessageRef = useRef(buildMessage);
|
|
46
|
+
buildMessageRef.current = buildMessage;
|
|
47
|
+
const message = useMemo(() => nonce.data ? (buildMessageRef.current ?? defaultBuildMessage)({
|
|
46
48
|
nonce: nonce.data
|
|
47
|
-
}) : null, [nonce.data
|
|
48
|
-
const command = useMemo(() => message ? `{ printf %s '${message}' | gpg --detach-sign --armor; gpg --armor --export; }` : null, [message]);
|
|
49
|
+
}) : null, [nonce.data]);
|
|
50
|
+
const command = useMemo(() => message ? `{ printf %s '${message.replace(/'/g, "'\\''")}' | gpg --detach-sign --armor; gpg --armor --export; }` : null, [message]);
|
|
49
51
|
const signIn = async pastedBlob => {
|
|
50
52
|
const blob = pastedBlob.trim();
|
|
51
53
|
if (!blob.includes("-----BEGIN PGP SIGNATURE-----") || !blob.includes("-----BEGIN PGP PUBLIC KEY BLOCK-----")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useContext","useMemo","useState","useQuery","Context","ConnectKitContext","GpgContext","GpgStatusState","jsx","GPG_NONCE_QUERY_KEY","b64","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","nonce","location","host","origin","Date","toISOString","GpgProvider","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","READY","resetStatus","Error","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","message","data","command","signIn","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","Provider","value"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAoBA,UAAA,EAAYC,OAAA,EAASC,QAAA,QAAgB;
|
|
1
|
+
{"version":3,"names":["useContext","useMemo","useRef","useState","useQuery","Context","ConnectKitContext","GpgContext","GpgStatusState","jsx","GPG_NONCE_QUERY_KEY","b64","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","nonce","location","host","origin","Date","toISOString","GpgProvider","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","READY","resetStatus","Error","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","buildMessageRef","current","message","data","command","replace","signIn","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","Provider","value"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useContext, useMemo, useState } from "react";
|
|
2
|
+
import { useContext, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { useQuery } from "@tanstack/react-query";
|
|
4
4
|
import { Context as ConnectKitContext } from "@multiplatform.one/connectkit";
|
|
5
5
|
import { GpgContext, GpgStatusState } from "./GpgContext.native.js";
|
|
@@ -50,13 +50,16 @@ var GpgProvider = function GpgProvider2(param) {
|
|
|
50
50
|
refetchOnReconnect: false,
|
|
51
51
|
staleTime: Infinity
|
|
52
52
|
});
|
|
53
|
+
var buildMessageRef = useRef(buildMessage);
|
|
54
|
+
buildMessageRef.current = buildMessage;
|
|
53
55
|
var message = useMemo(function () {
|
|
54
|
-
|
|
56
|
+
var _buildMessageRef_current;
|
|
57
|
+
return nonce.data ? ((_buildMessageRef_current = buildMessageRef.current) !== null && _buildMessageRef_current !== void 0 ? _buildMessageRef_current : defaultBuildMessage)({
|
|
55
58
|
nonce: nonce.data
|
|
56
59
|
}) : null;
|
|
57
|
-
}, [nonce.data
|
|
60
|
+
}, [nonce.data]);
|
|
58
61
|
var command = useMemo(function () {
|
|
59
|
-
return message ? `{ printf %s '${message}' | gpg --detach-sign --armor; gpg --armor --export; }` : null;
|
|
62
|
+
return message ? `{ printf %s '${message.replace(/'/g, "'\\''")}' | gpg --detach-sign --armor; gpg --armor --export; }` : null;
|
|
60
63
|
}, [message]);
|
|
61
64
|
var signIn = async function signIn2(pastedBlob) {
|
|
62
65
|
var blob = pastedBlob.trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","useContext","useMemo","useState","useQuery","Context","ConnectKitContext","GpgContext","GpgStatusState","GPG_NONCE_QUERY_KEY","b64","b642","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","param","nonce","location","host","origin","Date","toISOString","GpgProvider","GpgProvider2","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","READY","resetStatus","resetStatus2","Error","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","message","data","command","signIn","signIn2","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","Provider","value"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAoBA,GAAA,IAAAC,IAAA,QAAY,
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","useContext","useMemo","useRef","useState","useQuery","Context","ConnectKitContext","GpgContext","GpgStatusState","GPG_NONCE_QUERY_KEY","b64","b642","s","window","btoa","unescape","encodeURIComponent","defaultBuildMessage","param","nonce","location","host","origin","Date","toISOString","GpgProvider","GpgProvider2","children","enabled","nonceRefetchInterval","buildMessage","onSignIn","gpgConfig","status","setStatus","READY","resetStatus","resetStatus2","Error","queryKey","queryFn","getNonce","refetchInterval","refetchOnWindowFocus","refetchOnReconnect","staleTime","Infinity","buildMessageRef","current","message","_buildMessageRef_current","data","command","replace","signIn","signIn2","pastedBlob","blob","trim","includes","ERROR","LOADING","result","onSign","username","password","SUCCESS","error","Provider","value"],"sources":["../../src/GpgProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@multiplatform.one/gpg",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.3",
|
|
4
4
|
"description": "Sign-In With GPG (SIWG) screen + GpgProvider for the connectkit modal — no viem",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"connectkit",
|
|
@@ -53,14 +53,14 @@
|
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@multiplatform.one/connectkit": "6.0.
|
|
56
|
+
"@multiplatform.one/connectkit": "6.0.3"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@tamagui/build": "2.0.0-rc.41",
|
|
60
60
|
"@types/react": "~19.2.14",
|
|
61
61
|
"react": "19.2.5",
|
|
62
62
|
"typescript": "~5.9.3",
|
|
63
|
-
"@multiplatform.one/config": "6.0.
|
|
63
|
+
"@multiplatform.one/config": "6.0.3"
|
|
64
64
|
},
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@tanstack/react-query": "^5.62.0",
|
package/src/GpgProvider.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ReactNode, useContext, useMemo, useState } from "react";
|
|
1
|
+
import { ReactNode, useContext, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { useQuery } from "@tanstack/react-query";
|
|
3
3
|
|
|
4
4
|
import { Context as ConnectKitContext } from "@multiplatform.one/connectkit";
|
|
@@ -62,17 +62,23 @@ export const GpgProvider = ({
|
|
|
62
62
|
// Compute the challenge ONCE per nonce (it embeds an Issued At timestamp); recomputing
|
|
63
63
|
// on every render would desync the displayed/copied message from the one base64'd into
|
|
64
64
|
// `password`, breaking the signature (which is verified over the exact message bytes).
|
|
65
|
+
// buildMessage is read through a ref so an inline-closure prop (new identity every
|
|
66
|
+
// render) can't retrigger the memo and desync the message the same way.
|
|
67
|
+
const buildMessageRef = useRef(buildMessage);
|
|
68
|
+
buildMessageRef.current = buildMessage;
|
|
65
69
|
const message = useMemo(
|
|
66
|
-
() =>
|
|
67
|
-
|
|
70
|
+
() =>
|
|
71
|
+
nonce.data ? (buildMessageRef.current ?? defaultBuildMessage)({ nonce: nonce.data }) : null,
|
|
72
|
+
[nonce.data],
|
|
68
73
|
);
|
|
69
74
|
// The ready-to-run terminal command: detached armored signature + the exported public
|
|
70
75
|
// key, concatenated — exactly the blob the user pastes back. printf %s (no newline) so
|
|
71
|
-
// the signed bytes are byte-identical to `message`.
|
|
76
|
+
// the signed bytes are byte-identical to `message`. Single quotes in the message are
|
|
77
|
+
// POSIX-escaped ('\'' ) so a custom buildMessage can't break out of the quoting.
|
|
72
78
|
const command = useMemo(
|
|
73
79
|
() =>
|
|
74
80
|
message
|
|
75
|
-
? `{ printf %s '${message}' | gpg --detach-sign --armor; gpg --armor --export; }`
|
|
81
|
+
? `{ printf %s '${message.replace(/'/g, "'\\''")}' | gpg --detach-sign --armor; gpg --armor --export; }`
|
|
76
82
|
: null,
|
|
77
83
|
[message],
|
|
78
84
|
);
|