@parity/product-deploy 0.7.28 → 0.7.30-rc.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.
- package/assets/environments.json +34 -30
- package/dist/bug-report.js +4 -4
- package/dist/{chunk-TPDF24MG.js → chunk-2ULXHYB4.js} +58 -7
- package/dist/{chunk-37M4NISG.js → chunk-2WWR3DVD.js} +3 -3
- package/dist/{chunk-2VAUMZB2.js → chunk-7Y7RDOGT.js} +39 -8
- package/dist/{chunk-BMAEWZYV.js → chunk-AFBOKCCQ.js} +3 -3
- package/dist/{chunk-THZU3FZU.js → chunk-E62JHC4N.js} +2 -2
- package/dist/{chunk-ZJDGVUN3.js → chunk-EYWOZU4M.js} +3 -3
- package/dist/{chunk-Y7XKC43A.js → chunk-FIKBEVYL.js} +1 -1
- package/dist/{chunk-HZKRLQLG.js → chunk-GL2HHK4G.js} +34 -30
- package/dist/{chunk-5VZQ2KSU.js → chunk-JCOZV25R.js} +18 -15
- package/dist/{chunk-IDYGYIMH.js → chunk-LHLCPDGL.js} +1 -1
- package/dist/{chunk-6Y3XJGV7.js → chunk-MZ4Z5AXI.js} +115 -62
- package/dist/{chunk-T7EEVWNU.js → chunk-SI2ZUOYD.js} +5 -5
- package/dist/chunk-SLE4P6MO.js +39 -0
- package/dist/chunk-XAB7WM3S.js +90 -0
- package/dist/{chunk-64KTKZ7H.js → chunk-YCVK36KC.js} +1 -1
- package/dist/{chunk-LFKP64TQ.js → chunk-YP6AS724.js} +5 -1
- package/dist/{chunk-7NKOV5SU.js → chunk-ZGH7YHV5.js} +1 -1
- package/dist/chunk-probe.js +3 -3
- package/dist/deploy.d.ts +3 -1
- package/dist/deploy.js +11 -9
- package/dist/dotns.d.ts +19 -2
- package/dist/dotns.js +7 -5
- package/dist/environments.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +10 -10
- package/dist/manifest/publish.js +10 -10
- package/dist/memory-report.js +2 -2
- package/dist/merkle.js +9 -9
- package/dist/personhood/bind-paid-alias.d.ts +1 -1
- package/dist/personhood/bind-paid-alias.js +3 -2
- package/dist/personhood/bind-personal-id.js +2 -2
- package/dist/personhood/bootstrap.d.ts +7 -0
- package/dist/personhood/bootstrap.js +29 -17
- package/dist/personhood/chain-prereqs.d.ts +76 -0
- package/dist/personhood/chain-prereqs.js +17 -0
- package/dist/personhood/claim-pgas.d.ts +33 -2
- package/dist/personhood/claim-pgas.js +4 -2
- package/dist/personhood/constants.d.ts +5 -5
- package/dist/personhood/constants.js +3 -3
- package/dist/personhood/member-key.js +2 -2
- package/dist/personhood/people-client.js +5 -5
- package/dist/personhood/proof-validity.d.ts +41 -0
- package/dist/personhood/proof-validity.js +12 -0
- package/dist/personhood/reprove.d.ts +1 -1
- package/dist/personhood/reprove.js +10 -13
- package/dist/pool.js +3 -3
- package/dist/run-state.js +1 -1
- package/dist/telemetry.d.ts +43 -1
- package/dist/telemetry.js +4 -2
- package/dist/version-check.js +3 -3
- package/package.json +3 -3
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
2
|
+
buildAliasProofMessage,
|
|
3
|
+
getProofValidAtSec
|
|
4
|
+
} from "../chunk-SLE4P6MO.js";
|
|
5
|
+
import {
|
|
3
6
|
PEOPLE_MEMBER_IDENTIFIER_HEX,
|
|
4
7
|
PROOF_BYTES
|
|
5
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-SI2ZUOYD.js";
|
|
6
9
|
import {
|
|
7
|
-
blake2_256,
|
|
8
10
|
bytesToHex,
|
|
9
|
-
concatBytes,
|
|
10
11
|
encodeMembers,
|
|
11
12
|
hexToBytes
|
|
12
13
|
} from "../chunk-ZYVGHDMU.js";
|
|
@@ -49,12 +50,6 @@ var reproveAliasToAccount = async ({
|
|
|
49
50
|
{ kind: "NoStoredAlias" }
|
|
50
51
|
);
|
|
51
52
|
}
|
|
52
|
-
if (!stored.paid) {
|
|
53
|
-
throw new ReproveAliasError(
|
|
54
|
-
"AccountToAlias row is not paid \u2014 reprove_alias_account is only for paid aliases",
|
|
55
|
-
{ kind: "NotPaid" }
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
53
|
const contextBytes = hexToBytes(stored.ca.context);
|
|
59
54
|
const storedRevision = stored.revision;
|
|
60
55
|
const storedRing = stored.ring;
|
|
@@ -110,18 +105,19 @@ var reproveAliasToAccount = async ({
|
|
|
110
105
|
{ kind: "RevisionNotAdvanced" }
|
|
111
106
|
);
|
|
112
107
|
}
|
|
108
|
+
const proofValidAt = await getProofValidAtSec(ah);
|
|
113
109
|
const ss58Info = getSs58AddressInfo(account);
|
|
114
110
|
if (!ss58Info.isValid) {
|
|
115
111
|
throw new ReproveAliasError(`invalid SS58: ${account}`, {
|
|
116
112
|
kind: "ClientError"
|
|
117
113
|
});
|
|
118
114
|
}
|
|
119
|
-
const
|
|
115
|
+
const aliasMsg = buildAliasProofMessage(ss58Info.publicKey, proofValidAt);
|
|
120
116
|
const { proof, alias } = await buildRingProof({
|
|
121
117
|
ringExponent,
|
|
122
118
|
members: membersBytes,
|
|
123
119
|
context: contextBytes,
|
|
124
|
-
msg:
|
|
120
|
+
msg: aliasMsg
|
|
125
121
|
});
|
|
126
122
|
if (proof.length !== PROOF_BYTES) {
|
|
127
123
|
throw new ReproveAliasError(
|
|
@@ -138,7 +134,8 @@ var reproveAliasToAccount = async ({
|
|
|
138
134
|
const tx = ah.tx.AliasAccounts.reprove_alias_account({
|
|
139
135
|
proof: bytesToHex(proof),
|
|
140
136
|
ring_index: ringIndex,
|
|
141
|
-
ring_revision: newRevision
|
|
137
|
+
ring_revision: newRevision,
|
|
138
|
+
proof_valid_at: proofValidAt
|
|
142
139
|
});
|
|
143
140
|
const blockHash = await new Promise((resolve, reject) => {
|
|
144
141
|
let settled = false;
|
package/dist/pool.js
CHANGED
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
isTestnetSpecName,
|
|
13
13
|
selectAccount,
|
|
14
14
|
topUpBy
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-FIKBEVYL.js";
|
|
16
|
+
import "./chunk-YP6AS724.js";
|
|
17
|
+
import "./chunk-2WWR3DVD.js";
|
|
18
18
|
export {
|
|
19
19
|
_resetTestnetCacheForTests,
|
|
20
20
|
bootstrapPool,
|
package/dist/run-state.js
CHANGED
package/dist/telemetry.d.ts
CHANGED
|
@@ -2,6 +2,29 @@ import * as _sentry_node from '@sentry/node';
|
|
|
2
2
|
import { DeployContextForReport } from './memory-report.js';
|
|
3
3
|
import 'node:v8';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Registry of instrumented code paths for dead-branch coverage monitoring.
|
|
7
|
+
*
|
|
8
|
+
* Each ID is emitted as a "code.path.<id>" span attribute the first time a deploy
|
|
9
|
+
* exercises that branch. The nightly check-code-path-coverage.py queries
|
|
10
|
+
* Sentry for zero-hit paths over a rolling 30-day window and files a GitHub
|
|
11
|
+
* issue if any are found.
|
|
12
|
+
*
|
|
13
|
+
* Rule: never remove an ID without also removing the corresponding branch.
|
|
14
|
+
* Add a new ID whenever you add a conditional branch worth monitoring.
|
|
15
|
+
*
|
|
16
|
+
* When adding a new ID here, ALSO add it to CODE_PATHS in
|
|
17
|
+
* tools/check-code-path-coverage.py with an `introduced` date of today
|
|
18
|
+
* (YYYY-MM-DD UTC). The grace window prevents the brand-new path from
|
|
19
|
+
* triggering a false "0 hits over 30d" alarm before any consumer has
|
|
20
|
+
* had time to upgrade and exercise the branch.
|
|
21
|
+
*/
|
|
22
|
+
declare const CODE_PATHS: {
|
|
23
|
+
readonly DOTNS_AUTO_MAPPING: "dotns.auto-mapping";
|
|
24
|
+
readonly DOTNS_MANUAL_MAPPING: "dotns.manual-mapping";
|
|
25
|
+
};
|
|
26
|
+
type CodePath = typeof CODE_PATHS[keyof typeof CODE_PATHS];
|
|
27
|
+
|
|
5
28
|
declare const VERSION: string;
|
|
6
29
|
type SentryModule = typeof _sentry_node | null;
|
|
7
30
|
interface InternalContextSignals {
|
|
@@ -50,7 +73,26 @@ declare function __setDeployRootSpanForTest(span: any | null): void;
|
|
|
50
73
|
declare function __setSentryForTest(stub: any): SentryModule;
|
|
51
74
|
declare function getCurrentSentryTraceId(): string | undefined;
|
|
52
75
|
declare function setDeploySentryTag(key: string, value: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Mark a code path as exercised in the current deploy span.
|
|
78
|
+
* Used for dead-branch coverage monitoring — see src/code-paths.ts.
|
|
79
|
+
*
|
|
80
|
+
* Design: each path gets its own boolean attribute `code.path.<id>` = "true"
|
|
81
|
+
* rather than a single `code.path` attribute. This avoids the overwrite problem
|
|
82
|
+
* — a single deploy span that exercises multiple branches would otherwise only
|
|
83
|
+
* record the last one. Boolean-per-path lets Sentry query `has:code.path.pool.auth.v2`
|
|
84
|
+
* independently for each path.
|
|
85
|
+
*
|
|
86
|
+
* Note: @sentry/node user-defined attributes come back as string-typed in EAP
|
|
87
|
+
* regardless of value type. Store as the string "true" so queries using
|
|
88
|
+
* `count_if(code.path.pool.auth.v2, "true")` or `has:code.path.pool.auth.v2`
|
|
89
|
+
* both work correctly.
|
|
90
|
+
*
|
|
91
|
+
* No-ops gracefully if called outside a deploy span (setDeployAttribute guards
|
|
92
|
+
* on deployRootSpan — see setDeployAttribute implementation above).
|
|
93
|
+
*/
|
|
94
|
+
declare function markCodePath(id: CodePath): void;
|
|
53
95
|
declare function captureWarning(message: string, context?: Record<string, unknown>): void;
|
|
54
96
|
declare function flush(): Promise<void>;
|
|
55
97
|
|
|
56
|
-
export { type DeployErrorCategory, type DeployErrorKind, type InternalContextSignals, VERSION, __setDeployRootSpanForTest, __setSentryForTest, analyseErrorPattern, captureWarning, classifyDeployError, classifyErrorKind, classifySadReason, closeTelemetry, computeDeployOutcome, flush, getCurrentSentryTraceId, getDeployAttributes, initTelemetry, isExpectedError, isInternalContext, isInternalContextFromSignals, markRelaunchOomHintShown, resolveRepo, resolveRunner, resolveRunnerType, sampleMemory, sanitizeBranch, sanitizeErrorMessage, sanitizeRepo, scrubPaths, setDeployAttribute, setDeployReportContext, setDeploySentryTag, setRunStateActive, truncateAddress, withDeploySpan, withSpan };
|
|
98
|
+
export { type DeployErrorCategory, type DeployErrorKind, type InternalContextSignals, VERSION, __setDeployRootSpanForTest, __setSentryForTest, analyseErrorPattern, captureWarning, classifyDeployError, classifyErrorKind, classifySadReason, closeTelemetry, computeDeployOutcome, flush, getCurrentSentryTraceId, getDeployAttributes, initTelemetry, isExpectedError, isInternalContext, isInternalContextFromSignals, markCodePath, markRelaunchOomHintShown, resolveRepo, resolveRunner, resolveRunnerType, sampleMemory, sanitizeBranch, sanitizeErrorMessage, sanitizeRepo, scrubPaths, setDeployAttribute, setDeployReportContext, setDeploySentryTag, setRunStateActive, truncateAddress, withDeploySpan, withSpan };
|
package/dist/telemetry.js
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
isExpectedError,
|
|
17
17
|
isInternalContext,
|
|
18
18
|
isInternalContextFromSignals,
|
|
19
|
+
markCodePath,
|
|
19
20
|
markRelaunchOomHintShown,
|
|
20
21
|
resolveRepo,
|
|
21
22
|
resolveRunner,
|
|
@@ -32,8 +33,8 @@ import {
|
|
|
32
33
|
truncateAddress,
|
|
33
34
|
withDeploySpan,
|
|
34
35
|
withSpan
|
|
35
|
-
} from "./chunk-
|
|
36
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-YP6AS724.js";
|
|
37
|
+
import "./chunk-2WWR3DVD.js";
|
|
37
38
|
export {
|
|
38
39
|
VERSION,
|
|
39
40
|
__setDeployRootSpanForTest,
|
|
@@ -52,6 +53,7 @@ export {
|
|
|
52
53
|
isExpectedError,
|
|
53
54
|
isInternalContext,
|
|
54
55
|
isInternalContextFromSignals,
|
|
56
|
+
markCodePath,
|
|
55
57
|
markRelaunchOomHintShown,
|
|
56
58
|
resolveRepo,
|
|
57
59
|
resolveRunner,
|
package/dist/version-check.js
CHANGED
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
isPreReleaseVersion,
|
|
12
12
|
preReleaseWarning,
|
|
13
13
|
promptYesNo
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-YCVK36KC.js";
|
|
15
|
+
import "./chunk-YP6AS724.js";
|
|
16
|
+
import "./chunk-2WWR3DVD.js";
|
|
17
17
|
export {
|
|
18
18
|
assessVersion,
|
|
19
19
|
checkNodeVersion,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parity/product-deploy",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.30-rc.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"tools/release-retry-wrapper.mjs"
|
|
40
40
|
],
|
|
41
41
|
"scripts": {
|
|
42
|
-
"build": "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts --format esm --dts --clean --target node22",
|
|
42
|
+
"build": "tsup src/index.ts src/deploy.ts src/dotns.ts src/pool.ts src/telemetry.ts src/memory-report.ts src/merkle.ts src/gh-pages-mirror.ts src/version-check.ts src/bug-report.ts src/run-state.ts src/environments.ts src/errors.ts src/manifest.ts src/chunk-probe.ts src/manifest-embed.ts src/manifest-fetch.ts src/manifest-roundtrip.ts src/incremental-stats.ts src/chunker.ts src/personhood/encoding.ts src/personhood/hashing.ts src/personhood/constants.ts src/personhood/member-key.ts src/personhood/people-client.ts src/personhood/proof-validity.ts src/personhood/reprove.ts src/personhood/bind-personal-id.ts src/personhood/claim-pgas.ts src/personhood/bind-paid-alias.ts src/personhood/bootstrap.ts src/personhood/chain-prereqs.ts src/manifest/types.ts src/manifest/schema.ts src/manifest/byte-budget.ts src/manifest/config-load.ts src/manifest/publish.ts --format esm --dts --clean --target node22",
|
|
43
43
|
"refresh-environments": "node scripts/refresh-environments.mjs",
|
|
44
44
|
"check:watched-dependencies": "node tools/check-watched-dependencies.mjs",
|
|
45
45
|
"prepare": "npm run build",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"jiti": "^2.4.2",
|
|
67
67
|
"multiformats": "^13.4.1",
|
|
68
68
|
"polkadot-api": "^2.1.3",
|
|
69
|
-
"verifiablejs": "
|
|
69
|
+
"verifiablejs": "1.3.0-beta.4",
|
|
70
70
|
"viem": "^2.30.5"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|