@ixo/openhands-sdk 0.6.0 → 0.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.
- package/README.md +2 -1
- package/dist/cjs/campaign/spots.js +3 -3
- package/dist/cjs/chain/ask.d.ts +6 -1
- package/dist/cjs/chain/ask.d.ts.map +1 -1
- package/dist/cjs/chain/ask.js +11 -5
- package/dist/cjs/chain/ask.js.map +1 -1
- package/dist/cjs/chain/askyBase.d.ts +36 -0
- package/dist/cjs/chain/askyBase.d.ts.map +1 -0
- package/dist/cjs/chain/askyBase.js +56 -0
- package/dist/cjs/chain/askyBase.js.map +1 -0
- package/dist/cjs/chain/claimIncentives.d.ts +17 -0
- package/dist/cjs/chain/claimIncentives.d.ts.map +1 -0
- package/dist/cjs/chain/claimIncentives.js +22 -0
- package/dist/cjs/chain/claimIncentives.js.map +1 -0
- package/dist/cjs/chain/entityShape.d.ts +1 -1
- package/dist/cjs/chain/entityShape.d.ts.map +1 -1
- package/dist/cjs/chain/entityShape.js +5 -5
- package/dist/cjs/chain/entityShape.js.map +1 -1
- package/dist/cjs/chain/env.js +1 -1
- package/dist/cjs/chain/env.js.map +1 -1
- package/dist/cjs/chain/gate.d.ts +7 -0
- package/dist/cjs/chain/gate.d.ts.map +1 -1
- package/dist/cjs/chain/gate.js +26 -10
- package/dist/cjs/chain/gate.js.map +1 -1
- package/dist/cjs/chain/inviteAnswer.d.ts +32 -0
- package/dist/cjs/chain/inviteAnswer.d.ts.map +1 -0
- package/dist/cjs/chain/inviteAnswer.js +36 -0
- package/dist/cjs/chain/inviteAnswer.js.map +1 -0
- package/dist/cjs/chain/inviteMessages.d.ts +49 -30
- package/dist/cjs/chain/inviteMessages.d.ts.map +1 -1
- package/dist/cjs/chain/inviteMessages.js +64 -30
- package/dist/cjs/chain/inviteMessages.js.map +1 -1
- package/dist/cjs/chain/inviteProof.d.ts +16 -1
- package/dist/cjs/chain/inviteProof.d.ts.map +1 -1
- package/dist/cjs/chain/inviteProof.js +19 -1
- package/dist/cjs/chain/inviteProof.js.map +1 -1
- package/dist/cjs/chain/orgReviewBilling.js +1 -1
- package/dist/cjs/chain/orgReviewBilling.js.map +1 -1
- package/dist/cjs/chain/session.d.ts +8 -0
- package/dist/cjs/chain/session.d.ts.map +1 -1
- package/dist/cjs/chain/session.js +6 -1
- package/dist/cjs/chain/session.js.map +1 -1
- package/dist/cjs/chain/takeBack.d.ts +30 -0
- package/dist/cjs/chain/takeBack.d.ts.map +1 -1
- package/dist/cjs/chain/takeBack.js +44 -4
- package/dist/cjs/chain/takeBack.js.map +1 -1
- package/dist/cjs/chain/union.js +1 -1
- package/dist/cjs/config.d.ts +7 -1
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +4 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/data/askyProtocol.d.ts +13 -0
- package/dist/cjs/data/askyProtocol.d.ts.map +1 -0
- package/dist/cjs/data/askyProtocol.js +19 -0
- package/dist/cjs/data/askyProtocol.js.map +1 -0
- package/dist/cjs/data/board/assemble.js +2 -2
- package/dist/cjs/data/board/facts.d.ts +1 -1
- package/dist/cjs/data/board/facts.d.ts.map +1 -1
- package/dist/cjs/data/board/facts.js +5 -1
- package/dist/cjs/data/board/facts.js.map +1 -1
- package/dist/cjs/data/board/fixtures.d.ts.map +1 -1
- package/dist/cjs/data/board/fixtures.js +2 -1
- package/dist/cjs/data/board/fixtures.js.map +1 -1
- package/dist/cjs/data/board/read.d.ts +2 -0
- package/dist/cjs/data/board/read.d.ts.map +1 -1
- package/dist/cjs/data/board/read.js +4 -1
- package/dist/cjs/data/board/read.js.map +1 -1
- package/dist/cjs/data/board/types.d.ts +2 -0
- package/dist/cjs/data/board/types.d.ts.map +1 -1
- package/dist/cjs/data/checkers.d.ts +21 -5
- package/dist/cjs/data/checkers.d.ts.map +1 -1
- package/dist/cjs/data/checkers.js +135 -28
- package/dist/cjs/data/checkers.js.map +1 -1
- package/dist/cjs/data/displayNames.d.ts +7 -1
- package/dist/cjs/data/displayNames.d.ts.map +1 -1
- package/dist/cjs/data/displayNames.js +7 -1
- package/dist/cjs/data/displayNames.js.map +1 -1
- package/dist/cjs/data/engineUrl.d.ts +5 -4
- package/dist/cjs/data/engineUrl.d.ts.map +1 -1
- package/dist/cjs/data/engineUrl.js +12 -6
- package/dist/cjs/data/engineUrl.js.map +1 -1
- package/dist/cjs/data/envelope.d.ts +9 -2
- package/dist/cjs/data/envelope.d.ts.map +1 -1
- package/dist/cjs/data/envelope.js +10 -3
- package/dist/cjs/data/envelope.js.map +1 -1
- package/dist/cjs/data/install.d.ts +2 -2
- package/dist/cjs/data/install.d.ts.map +1 -1
- package/dist/cjs/data/install.js +3 -3
- package/dist/cjs/data/install.js.map +1 -1
- package/dist/cjs/data/onAsks.d.ts +57 -0
- package/dist/cjs/data/onAsks.d.ts.map +1 -0
- package/dist/cjs/data/onAsks.js +78 -0
- package/dist/cjs/data/onAsks.js.map +1 -0
- package/dist/cjs/data/openness.d.ts +3 -0
- package/dist/cjs/data/openness.d.ts.map +1 -1
- package/dist/cjs/data/openness.js +13 -1
- package/dist/cjs/data/openness.js.map +1 -1
- package/dist/cjs/data/orgPayouts.d.ts +1 -0
- package/dist/cjs/data/orgPayouts.d.ts.map +1 -1
- package/dist/cjs/data/orgPayouts.js +4 -2
- package/dist/cjs/data/orgPayouts.js.map +1 -1
- package/dist/cjs/data/profiles.d.ts +37 -2
- package/dist/cjs/data/profiles.d.ts.map +1 -1
- package/dist/cjs/data/profiles.js +121 -16
- package/dist/cjs/data/profiles.js.map +1 -1
- package/dist/cjs/data/threads.d.ts +6 -0
- package/dist/cjs/data/threads.d.ts.map +1 -1
- package/dist/cjs/data/threads.js.map +1 -1
- package/dist/cjs/data/trace.d.ts +1 -0
- package/dist/cjs/data/trace.d.ts.map +1 -1
- package/dist/cjs/data/trace.js +4 -2
- package/dist/cjs/data/trace.js.map +1 -1
- package/dist/cjs/data/traceWords.d.ts +1 -1
- package/dist/cjs/data/traceWords.d.ts.map +1 -1
- package/dist/cjs/data/traceWords.js +3 -1
- package/dist/cjs/data/traceWords.js.map +1 -1
- package/dist/cjs/discovery.d.ts.map +1 -1
- package/dist/cjs/discovery.js +3 -1
- package/dist/cjs/discovery.js.map +1 -1
- package/dist/cjs/names/client.d.ts +10 -0
- package/dist/cjs/names/client.d.ts.map +1 -0
- package/dist/cjs/names/client.js +757 -0
- package/dist/cjs/names/client.js.map +7 -0
- package/dist/cjs/names/names.d.ts +93 -0
- package/dist/cjs/names/names.d.ts.map +1 -0
- package/dist/cjs/names/names.js +154 -0
- package/dist/cjs/names/names.js.map +1 -0
- package/dist/cjs/names.d.ts +14 -0
- package/dist/cjs/names.d.ts.map +1 -0
- package/dist/cjs/names.js +30 -0
- package/dist/cjs/names.js.map +1 -0
- package/dist/cjs/rubric/askyRubric.d.ts +70 -0
- package/dist/cjs/rubric/askyRubric.d.ts.map +1 -0
- package/dist/cjs/rubric/askyRubric.js +163 -0
- package/dist/cjs/rubric/askyRubric.js.map +1 -0
- package/dist/cjs/rubric/bridge.js +2 -2
- package/dist/cjs/rubric/bridge.js.map +1 -1
- package/dist/cjs/rubric/call.js +1 -1
- package/dist/cjs/rubric/call.js.map +1 -1
- package/dist/cjs/rubric/callChecks.js +1 -1
- package/dist/cjs/rubric/callLimits.js +2 -2
- package/dist/cjs/rubric/callPrompt.d.ts +7 -0
- package/dist/cjs/rubric/callPrompt.d.ts.map +1 -0
- package/dist/cjs/rubric/callPrompt.js +9 -0
- package/dist/cjs/rubric/callPrompt.js.map +1 -0
- package/dist/cjs/rubric/draft.d.ts +1 -1
- package/dist/cjs/rubric/draft.d.ts.map +1 -1
- package/dist/cjs/rubric/draft.js +1 -1
- package/dist/cjs/rubric/feeLine.d.ts +12 -3
- package/dist/cjs/rubric/feeLine.d.ts.map +1 -1
- package/dist/cjs/rubric/feeLine.js +19 -8
- package/dist/cjs/rubric/feeLine.js.map +1 -1
- package/dist/cjs/rubric/marketPlan.js +7 -7
- package/dist/cjs/rubric/marketPlan.js.map +1 -1
- package/dist/cjs/rubric/reportTemplate.d.ts +6 -2
- package/dist/cjs/rubric/reportTemplate.d.ts.map +1 -1
- package/dist/cjs/rubric/reportTemplate.js +10 -4
- package/dist/cjs/rubric/reportTemplate.js.map +1 -1
- package/dist/cjs/rubric/survey.js +2 -2
- package/dist/cjs/rubric/survey.js.map +1 -1
- package/dist/cjs/rubric/terms.d.ts +3 -5
- package/dist/cjs/rubric/terms.d.ts.map +1 -1
- package/dist/cjs/rubric/terms.js +3 -4
- package/dist/cjs/rubric/terms.js.map +1 -1
- package/dist/esm/campaign/spots.js +3 -3
- package/dist/esm/chain/ask.d.ts +6 -1
- package/dist/esm/chain/ask.d.ts.map +1 -1
- package/dist/esm/chain/ask.js +12 -6
- package/dist/esm/chain/ask.js.map +1 -1
- package/dist/esm/chain/askyBase.d.ts +36 -0
- package/dist/esm/chain/askyBase.d.ts.map +1 -0
- package/dist/esm/chain/askyBase.js +51 -0
- package/dist/esm/chain/askyBase.js.map +1 -0
- package/dist/esm/chain/claimIncentives.d.ts +17 -0
- package/dist/esm/chain/claimIncentives.d.ts.map +1 -0
- package/dist/esm/chain/claimIncentives.js +19 -0
- package/dist/esm/chain/claimIncentives.js.map +1 -0
- package/dist/esm/chain/entityShape.d.ts +1 -1
- package/dist/esm/chain/entityShape.d.ts.map +1 -1
- package/dist/esm/chain/entityShape.js +5 -5
- package/dist/esm/chain/entityShape.js.map +1 -1
- package/dist/esm/chain/env.js +1 -1
- package/dist/esm/chain/env.js.map +1 -1
- package/dist/esm/chain/gate.d.ts +7 -0
- package/dist/esm/chain/gate.d.ts.map +1 -1
- package/dist/esm/chain/gate.js +24 -10
- package/dist/esm/chain/gate.js.map +1 -1
- package/dist/esm/chain/inviteAnswer.d.ts +32 -0
- package/dist/esm/chain/inviteAnswer.d.ts.map +1 -0
- package/dist/esm/chain/inviteAnswer.js +28 -0
- package/dist/esm/chain/inviteAnswer.js.map +1 -0
- package/dist/esm/chain/inviteMessages.d.ts +49 -30
- package/dist/esm/chain/inviteMessages.d.ts.map +1 -1
- package/dist/esm/chain/inviteMessages.js +52 -25
- package/dist/esm/chain/inviteMessages.js.map +1 -1
- package/dist/esm/chain/inviteProof.d.ts +16 -1
- package/dist/esm/chain/inviteProof.d.ts.map +1 -1
- package/dist/esm/chain/inviteProof.js +16 -0
- package/dist/esm/chain/inviteProof.js.map +1 -1
- package/dist/esm/chain/orgReviewBilling.js +1 -1
- package/dist/esm/chain/orgReviewBilling.js.map +1 -1
- package/dist/esm/chain/session.d.ts +8 -0
- package/dist/esm/chain/session.d.ts.map +1 -1
- package/dist/esm/chain/session.js +6 -1
- package/dist/esm/chain/session.js.map +1 -1
- package/dist/esm/chain/takeBack.d.ts +30 -0
- package/dist/esm/chain/takeBack.d.ts.map +1 -1
- package/dist/esm/chain/takeBack.js +42 -4
- package/dist/esm/chain/takeBack.js.map +1 -1
- package/dist/esm/chain/union.js +1 -1
- package/dist/esm/config.d.ts +7 -1
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +4 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/data/askyProtocol.d.ts +13 -0
- package/dist/esm/data/askyProtocol.d.ts.map +1 -0
- package/dist/esm/data/askyProtocol.js +14 -0
- package/dist/esm/data/askyProtocol.js.map +1 -0
- package/dist/esm/data/board/assemble.js +2 -2
- package/dist/esm/data/board/facts.d.ts +1 -1
- package/dist/esm/data/board/facts.d.ts.map +1 -1
- package/dist/esm/data/board/facts.js +5 -1
- package/dist/esm/data/board/facts.js.map +1 -1
- package/dist/esm/data/board/fixtures.d.ts.map +1 -1
- package/dist/esm/data/board/fixtures.js +2 -1
- package/dist/esm/data/board/fixtures.js.map +1 -1
- package/dist/esm/data/board/read.d.ts +2 -0
- package/dist/esm/data/board/read.d.ts.map +1 -1
- package/dist/esm/data/board/read.js +4 -1
- package/dist/esm/data/board/read.js.map +1 -1
- package/dist/esm/data/board/types.d.ts +2 -0
- package/dist/esm/data/board/types.d.ts.map +1 -1
- package/dist/esm/data/checkers.d.ts +21 -5
- package/dist/esm/data/checkers.d.ts.map +1 -1
- package/dist/esm/data/checkers.js +130 -27
- package/dist/esm/data/checkers.js.map +1 -1
- package/dist/esm/data/displayNames.d.ts +7 -1
- package/dist/esm/data/displayNames.d.ts.map +1 -1
- package/dist/esm/data/displayNames.js +7 -1
- package/dist/esm/data/displayNames.js.map +1 -1
- package/dist/esm/data/engineUrl.d.ts +5 -4
- package/dist/esm/data/engineUrl.d.ts.map +1 -1
- package/dist/esm/data/engineUrl.js +11 -5
- package/dist/esm/data/engineUrl.js.map +1 -1
- package/dist/esm/data/envelope.d.ts +9 -2
- package/dist/esm/data/envelope.d.ts.map +1 -1
- package/dist/esm/data/envelope.js +10 -3
- package/dist/esm/data/envelope.js.map +1 -1
- package/dist/esm/data/install.d.ts +2 -2
- package/dist/esm/data/install.d.ts.map +1 -1
- package/dist/esm/data/install.js +3 -3
- package/dist/esm/data/install.js.map +1 -1
- package/dist/esm/data/onAsks.d.ts +57 -0
- package/dist/esm/data/onAsks.d.ts.map +1 -0
- package/dist/esm/data/onAsks.js +73 -0
- package/dist/esm/data/onAsks.js.map +1 -0
- package/dist/esm/data/openness.d.ts +3 -0
- package/dist/esm/data/openness.d.ts.map +1 -1
- package/dist/esm/data/openness.js +12 -1
- package/dist/esm/data/openness.js.map +1 -1
- package/dist/esm/data/orgPayouts.d.ts +1 -0
- package/dist/esm/data/orgPayouts.d.ts.map +1 -1
- package/dist/esm/data/orgPayouts.js +4 -2
- package/dist/esm/data/orgPayouts.js.map +1 -1
- package/dist/esm/data/profiles.d.ts +37 -2
- package/dist/esm/data/profiles.d.ts.map +1 -1
- package/dist/esm/data/profiles.js +120 -16
- package/dist/esm/data/profiles.js.map +1 -1
- package/dist/esm/data/threads.d.ts +6 -0
- package/dist/esm/data/threads.d.ts.map +1 -1
- package/dist/esm/data/threads.js.map +1 -1
- package/dist/esm/data/trace.d.ts +1 -0
- package/dist/esm/data/trace.d.ts.map +1 -1
- package/dist/esm/data/trace.js +4 -2
- package/dist/esm/data/trace.js.map +1 -1
- package/dist/esm/data/traceWords.d.ts +1 -1
- package/dist/esm/data/traceWords.d.ts.map +1 -1
- package/dist/esm/data/traceWords.js +3 -1
- package/dist/esm/data/traceWords.js.map +1 -1
- package/dist/esm/discovery.d.ts.map +1 -1
- package/dist/esm/discovery.js +3 -1
- package/dist/esm/discovery.js.map +1 -1
- package/dist/esm/names/client.d.ts +10 -0
- package/dist/esm/names/client.d.ts.map +1 -0
- package/dist/esm/names/client.js +10 -0
- package/dist/esm/names/client.js.map +1 -0
- package/dist/esm/names/names.d.ts +93 -0
- package/dist/esm/names/names.d.ts.map +1 -0
- package/dist/esm/names/names.js +142 -0
- package/dist/esm/names/names.js.map +1 -0
- package/dist/esm/names.d.ts +14 -0
- package/dist/esm/names.d.ts.map +1 -0
- package/dist/esm/names.js +14 -0
- package/dist/esm/names.js.map +1 -0
- package/dist/esm/rubric/askyRubric.d.ts +70 -0
- package/dist/esm/rubric/askyRubric.d.ts.map +1 -0
- package/dist/esm/rubric/askyRubric.js +155 -0
- package/dist/esm/rubric/askyRubric.js.map +1 -0
- package/dist/esm/rubric/bridge.js +2 -2
- package/dist/esm/rubric/bridge.js.map +1 -1
- package/dist/esm/rubric/call.js +1 -1
- package/dist/esm/rubric/call.js.map +1 -1
- package/dist/esm/rubric/callChecks.js +1 -1
- package/dist/esm/rubric/callLimits.js +2 -2
- package/dist/esm/rubric/callPrompt.d.ts +7 -0
- package/dist/esm/rubric/callPrompt.d.ts.map +1 -0
- package/dist/esm/rubric/callPrompt.js +6 -0
- package/dist/esm/rubric/callPrompt.js.map +1 -0
- package/dist/esm/rubric/draft.d.ts +1 -1
- package/dist/esm/rubric/draft.d.ts.map +1 -1
- package/dist/esm/rubric/draft.js +1 -1
- package/dist/esm/rubric/feeLine.d.ts +12 -3
- package/dist/esm/rubric/feeLine.d.ts.map +1 -1
- package/dist/esm/rubric/feeLine.js +16 -7
- package/dist/esm/rubric/feeLine.js.map +1 -1
- package/dist/esm/rubric/marketPlan.js +7 -7
- package/dist/esm/rubric/marketPlan.js.map +1 -1
- package/dist/esm/rubric/reportTemplate.d.ts +6 -2
- package/dist/esm/rubric/reportTemplate.d.ts.map +1 -1
- package/dist/esm/rubric/reportTemplate.js +8 -3
- package/dist/esm/rubric/reportTemplate.js.map +1 -1
- package/dist/esm/rubric/survey.js +2 -2
- package/dist/esm/rubric/survey.js.map +1 -1
- package/dist/esm/rubric/terms.d.ts +3 -5
- package/dist/esm/rubric/terms.d.ts.map +1 -1
- package/dist/esm/rubric/terms.js +3 -4
- package/dist/esm/rubric/terms.js.map +1 -1
- package/package.json +24 -3
- package/dist/cjs/data/sponsors.d.ts +0 -94
- package/dist/cjs/data/sponsors.d.ts.map +0 -1
- package/dist/cjs/data/sponsors.js +0 -147
- package/dist/cjs/data/sponsors.js.map +0 -1
- package/dist/esm/data/sponsors.d.ts +0 -94
- package/dist/esm/data/sponsors.d.ts.map +0 -1
- package/dist/esm/data/sponsors.js +0 -137
- package/dist/esm/data/sponsors.js.map +0 -1
package/dist/cjs/data/install.js
CHANGED
|
@@ -128,7 +128,7 @@ exports.npmUrl = npmUrl;
|
|
|
128
128
|
* guides (/llms.txt, /mcp.md) list these; bump a range here when a plugin's skill moves to a new one.
|
|
129
129
|
*/
|
|
130
130
|
exports.RESOURCE_PACKAGES = [
|
|
131
|
-
{ name: exports.MCP_PACKAGE, range: exports.MCP_TAG, what: `the
|
|
131
|
+
{ name: exports.MCP_PACKAGE, range: exports.MCP_TAG, what: `the Asks tools the plugin runs (server name ${exports.MCP_SERVER})` },
|
|
132
132
|
{ name: "@ixo/decision-oracle", range: "0.2", what: `company setup: the organisation, its verifier and Pay for reviews (used by ${exports.PLUGIN_NAME})` },
|
|
133
133
|
{ name: "@ixo/payouts-facilitator", range: "0.1", what: `a company's own payouts service, for paying workers in USD Coin on Base (used by ${exports.PLUGIN_NAME})` }
|
|
134
134
|
];
|
|
@@ -140,7 +140,7 @@ exports.resourceLines = resourceLines;
|
|
|
140
140
|
* Claude Code with the local MCP / HQ plugin, where keys and data stay on the
|
|
141
141
|
* user's machine (owner ruling 2026-10-15). One wording, said everywhere.
|
|
142
142
|
*/
|
|
143
|
-
exports.READ_ONLY_LINE = "This connector holds no key: it reads, and posts an ask only as a pay link (post_ask with pay_by \"card\"), where the person pays by card and posts it on
|
|
143
|
+
exports.READ_ONLY_LINE = "This connector holds no key: it reads, and posts an ask only as a pay link (post_ask with pay_by \"card\"), where the person pays by card and posts it on Asks. To post from your own money, set up payouts, pay for reviews or get paid, use Claude Code with an Asks plugin (asks): it runs on your computer, so your keys and data stay with you.";
|
|
144
144
|
/** The first Claude Code that installs from a marketplace in one step, with `--marketplace`. */
|
|
145
145
|
exports.CLAUDE_CODE_ONE_STEP = "2.1.275";
|
|
146
146
|
exports.PLUGIN_CLIENTS = ["claude-code", "codex"];
|
|
@@ -175,7 +175,7 @@ exports.PLUGIN_PATHS = [
|
|
|
175
175
|
{
|
|
176
176
|
name: exports.PLUGIN_NAME,
|
|
177
177
|
who: "For a company or yourself",
|
|
178
|
-
what: "Find
|
|
178
|
+
what: "Find Asks, answer them and get paid, post Asks of your own, and set up your company (organisation, how workers are paid, a verifier, review billing). A report ask is answered with Claude (the report and screenshots, which you approve before anything is sent) or on the website."
|
|
179
179
|
}
|
|
180
180
|
];
|
|
181
181
|
/** The plugin's commands (ixoworld/ixo-plugins), said once: `/asks` works out what the person wants, the rest go straight to one job. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/data/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Money on a person's asks: every ask they posted that still holds money or
|
|
3
|
+
* still takes answers, with what it holds and what its open spots are owed.
|
|
4
|
+
*
|
|
5
|
+
* One read for both sides of the account, so they say one figure: /me's "On
|
|
6
|
+
* your asks" and the MCP's `my_status`. What sits on an ask is the person's
|
|
7
|
+
* until it is paid out or taken back; it is not Available, and it is never
|
|
8
|
+
* counted twice.
|
|
9
|
+
*
|
|
10
|
+
* Read from the index (the entities an address owns and their claim
|
|
11
|
+
* collections) and the chain's REST gateway (what each ask's own account
|
|
12
|
+
* holds, which the index does not know). Both endpoints are passed in, so the
|
|
13
|
+
* browser, the MCP and a test stub each point it where they read.
|
|
14
|
+
*
|
|
15
|
+
* shortcut: the 60 owned entities the index returns first and the first 100
|
|
16
|
+
* collections under them; a poster past that loses their oldest asks from the
|
|
17
|
+
* sum. upgrade to a server read if posters outgrow it.
|
|
18
|
+
*/
|
|
19
|
+
export interface AskMoney {
|
|
20
|
+
collectionId: string;
|
|
21
|
+
entityDid: string;
|
|
22
|
+
/** The ask's own account, which holds its money. */
|
|
23
|
+
admin: string;
|
|
24
|
+
/** The entity's `alsoKnownAs`, the ask's name as posted (askTitle reads it). */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Still taking answers: open on chain, before its end date, spots left. */
|
|
27
|
+
open: boolean;
|
|
28
|
+
/** Base units of dollars the ask's account holds now, every dollar coin together. */
|
|
29
|
+
held: number;
|
|
30
|
+
/** The reward's coin. */
|
|
31
|
+
denom: string;
|
|
32
|
+
/** What the ask is missing to pay every open spot (reward × spots not yet approved, less what it holds), base units. */
|
|
33
|
+
short: number;
|
|
34
|
+
/** One more answer: its reward plus the check fee paid from the ask, base units. */
|
|
35
|
+
each: number;
|
|
36
|
+
/** Its spots on chain; 0 is unlimited, which has no count to raise. */
|
|
37
|
+
quota: number;
|
|
38
|
+
}
|
|
39
|
+
export interface OnAsksOptions {
|
|
40
|
+
/** The index's GraphQL endpoint. */
|
|
41
|
+
graphqlUrl: string;
|
|
42
|
+
/** The chain's REST gateway. */
|
|
43
|
+
restUrl: string;
|
|
44
|
+
fetchImpl?: typeof fetch;
|
|
45
|
+
now?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The asks `address` owns that hold money or take answers, newest first. An
|
|
49
|
+
* ask that ended with nothing on it is done and is left out; one that ended
|
|
50
|
+
* with money still on it is listed, because that money is still the poster's
|
|
51
|
+
* to take back. Throws when the index or the gateway does not answer: a sum
|
|
52
|
+
* missing one ask would be a wrong figure, said as if it were right.
|
|
53
|
+
*/
|
|
54
|
+
export declare function asksHolding(address: string, options: OnAsksOptions): Promise<AskMoney[]>;
|
|
55
|
+
/** Base units of dollars on every ask listed: the one figure "On your asks" says. */
|
|
56
|
+
export declare const heldOnAsks: (asks: readonly AskMoney[]) => number;
|
|
57
|
+
//# sourceMappingURL=onAsks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onAsks.d.ts","sourceRoot":"","sources":["../../../src/data/onAsks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,qFAAqF;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wHAAwH;IACxH,KAAK,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;CACf;AAqBD,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgD9F;AAED,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,QAAQ,EAAE,KAAG,MAA0D,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Money on a person's asks: every ask they posted that still holds money or
|
|
4
|
+
* still takes answers, with what it holds and what its open spots are owed.
|
|
5
|
+
*
|
|
6
|
+
* One read for both sides of the account, so they say one figure: /me's "On
|
|
7
|
+
* your asks" and the MCP's `my_status`. What sits on an ask is the person's
|
|
8
|
+
* until it is paid out or taken back; it is not Available, and it is never
|
|
9
|
+
* counted twice.
|
|
10
|
+
*
|
|
11
|
+
* Read from the index (the entities an address owns and their claim
|
|
12
|
+
* collections) and the chain's REST gateway (what each ask's own account
|
|
13
|
+
* holds, which the index does not know). Both endpoints are passed in, so the
|
|
14
|
+
* browser, the MCP and a test stub each point it where they read.
|
|
15
|
+
*
|
|
16
|
+
* shortcut: the 60 owned entities the index returns first and the first 100
|
|
17
|
+
* collections under them; a poster past that loses their oldest asks from the
|
|
18
|
+
* sum. upgrade to a server read if posters outgrow it.
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.heldOnAsks = void 0;
|
|
22
|
+
exports.asksHolding = asksHolding;
|
|
23
|
+
const gql_ts_1 = require("./gql.js");
|
|
24
|
+
const money_ts_1 = require("./money.js");
|
|
25
|
+
const sum = (coins, denom) => coins?.filter((coin) => coin.denom === denom).reduce((total, coin) => total + Number(coin.amount), 0) ?? 0;
|
|
26
|
+
/* The index writes a timestamp without its zone; read as UTC either way. */
|
|
27
|
+
const endsAt = (endDate) => (endDate ? Date.parse(`${endDate}Z`.replace(/ZZ$/, "Z")) : Number.POSITIVE_INFINITY);
|
|
28
|
+
/**
|
|
29
|
+
* The asks `address` owns that hold money or take answers, newest first. An
|
|
30
|
+
* ask that ended with nothing on it is done and is left out; one that ended
|
|
31
|
+
* with money still on it is listed, because that money is still the poster's
|
|
32
|
+
* to take back. Throws when the index or the gateway does not answer: a sum
|
|
33
|
+
* missing one ask would be a wrong figure, said as if it were right.
|
|
34
|
+
*/
|
|
35
|
+
async function asksHolding(address, options) {
|
|
36
|
+
const { graphqlUrl, restUrl, fetchImpl = fetch, now = Date.now() } = options;
|
|
37
|
+
const owned = await (0, gql_ts_1.gqlAt)(graphqlUrl, `query { entities(filter: {owner: {equalTo: ${JSON.stringify(address)}}}, first: 60) { nodes { id alsoKnownAs } } }`, { fetchImpl });
|
|
38
|
+
const names = new Map(owned.entities.nodes.map((one) => [one.id, one.alsoKnownAs ?? ""]));
|
|
39
|
+
if (names.size === 0)
|
|
40
|
+
return [];
|
|
41
|
+
const rows = await (0, gql_ts_1.gqlAt)(graphqlUrl, `query { claimCollections(filter: {entity: {in: ${JSON.stringify([...names.keys()])}}}, first: 100) { nodes { id entity admin state quota count approved endDate payments } } }`, { fetchImpl });
|
|
42
|
+
const rest = restUrl.replace(/\/$/, "");
|
|
43
|
+
const read = (admin) => fetchImpl(`${rest}/cosmos/bank/v1beta1/balances/${encodeURIComponent(admin)}`, { signal: AbortSignal.timeout(10_000) })
|
|
44
|
+
.then((response) => (response.ok ? response.json() : Promise.reject(new Error(`balances ${response.status}`))))
|
|
45
|
+
.then((body) => body.balances ?? []);
|
|
46
|
+
const held = await Promise.all(rows.claimCollections.nodes.map((row) => read(row.admin)));
|
|
47
|
+
return rows.claimCollections.nodes
|
|
48
|
+
.map((row, index) => {
|
|
49
|
+
const coins = held[index];
|
|
50
|
+
const denom = row.payments?.approval?.amount?.[0]?.denom ?? "upay";
|
|
51
|
+
const reward = sum(row.payments?.approval?.amount, denom);
|
|
52
|
+
const evaluation = row.payments?.evaluation;
|
|
53
|
+
const fee = !evaluation?.account || evaluation.account === row.admin ? sum(evaluation?.amount, denom) : 0;
|
|
54
|
+
const quota = Number(row.quota);
|
|
55
|
+
const filled = quota > 0 && Number(row.count ?? 0) >= quota;
|
|
56
|
+
const open = (row.state === 0 || row.state === "0" || row.state === "OPEN") && endsAt(row.endDate) > now && !filled;
|
|
57
|
+
const owed = reward * Math.max(0, quota - Number(row.approved));
|
|
58
|
+
return {
|
|
59
|
+
collectionId: String(row.id),
|
|
60
|
+
entityDid: row.entity,
|
|
61
|
+
admin: row.admin,
|
|
62
|
+
name: names.get(row.entity) ?? "",
|
|
63
|
+
open,
|
|
64
|
+
held: coins.filter((coin) => money_ts_1.DOLLAR_DENOMS.has(coin.denom)).reduce((total, coin) => total + Number(coin.amount), 0),
|
|
65
|
+
denom,
|
|
66
|
+
short: open ? Math.max(0, owed - sum(coins, denom)) : 0,
|
|
67
|
+
each: reward + fee,
|
|
68
|
+
quota
|
|
69
|
+
};
|
|
70
|
+
})
|
|
71
|
+
/* Done is done: ended, and nothing left on it. An open ask with no reward in dollars (paid off chain, or in the network's own coin) holds nothing here either. */
|
|
72
|
+
.filter((ask) => ask.held > 0 || (ask.open && ask.each > 0 && money_ts_1.DOLLAR_DENOMS.has(ask.denom)))
|
|
73
|
+
.sort((a, b) => Number(b.collectionId) - Number(a.collectionId));
|
|
74
|
+
}
|
|
75
|
+
/** Base units of dollars on every ask listed: the one figure "On your asks" says. */
|
|
76
|
+
const heldOnAsks = (asks) => asks.reduce((total, ask) => total + ask.held, 0);
|
|
77
|
+
exports.heldOnAsks = heldOnAsks;
|
|
78
|
+
//# sourceMappingURL=onAsks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onAsks.js","sourceRoot":"","sources":["../../../src/data/onAsks.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,13 @@ export declare function askOpenness(ask: AskWindow, now?: Date): Openness;
|
|
|
38
38
|
* Why there is no door, including the reason that is not about this ask at
|
|
39
39
|
* all: it belongs to another application.
|
|
40
40
|
*/
|
|
41
|
+
export type SubmissionConstraint = "not-configured" | "account-missing" | "not-authorized" | "permission-unreadable";
|
|
41
42
|
export type AskDoor = Openness | {
|
|
42
43
|
open: false;
|
|
43
44
|
why: "elsewhere";
|
|
45
|
+
constraint?: SubmissionConstraint;
|
|
44
46
|
};
|
|
47
|
+
export declare function submissionConstraintWords(constraint: SubmissionConstraint | undefined): string;
|
|
45
48
|
/**
|
|
46
49
|
* Whether **this deployment** can take an answer to this ask — which is the
|
|
47
50
|
* question a submit button is really asking, and a strictly harder one than
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openness.d.ts","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;AAChB;+EAC+E;GAC7E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC;AAEnE,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,QAAQ,CAsC5E;AAED;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,WAAW,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"openness.d.ts","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE;AAChB;+EAC+E;GAC7E;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAA;CAAE,CAAC;AAEnE,wBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,QAAQ,CAsC5E;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AACrH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,WAAW,CAAC;IAAC,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAEtG,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAM9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAExI,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,IAAiB,GAAG,OAAO,CAMpI;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,QAAQ,GAAE,YAA+B,GAAG,MAAM,CA0D9J"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.askOpenness = askOpenness;
|
|
4
|
+
exports.submissionConstraintWords = submissionConstraintWords;
|
|
4
5
|
exports.askDoor = askDoor;
|
|
5
6
|
exports.standingLine = standingLine;
|
|
6
7
|
const format_ts_1 = require("./format.js");
|
|
@@ -44,6 +45,17 @@ function askOpenness(ask, now = new Date()) {
|
|
|
44
45
|
return { open: false, why: "ended" };
|
|
45
46
|
return { open: true };
|
|
46
47
|
}
|
|
48
|
+
function submissionConstraintWords(constraint) {
|
|
49
|
+
if (constraint === "not-configured")
|
|
50
|
+
return "This site can't take answers yet.";
|
|
51
|
+
if (constraint === "account-missing")
|
|
52
|
+
return "This ask can't take answers here: its details are incomplete.";
|
|
53
|
+
if (constraint === "permission-unreadable")
|
|
54
|
+
return "We couldn't check whether this ask is taking answers. Try again shortly.";
|
|
55
|
+
if (constraint === "not-authorized")
|
|
56
|
+
return "This ask isn't taking answers on this site.";
|
|
57
|
+
return "We couldn't confirm this ask is taking answers here yet.";
|
|
58
|
+
}
|
|
47
59
|
function askDoor(ask, authorized, now = new Date()) {
|
|
48
60
|
/* The chain's own word and the clock first: an ask that is closed is closed
|
|
49
61
|
whoever posted it, and "closed" is the more useful thing to be told. */
|
|
@@ -87,7 +99,7 @@ function standingLine(ask, openness = askOpenness(ask)) {
|
|
|
87
99
|
* collecting answers — just not through this door.
|
|
88
100
|
*/
|
|
89
101
|
if (openness.why === "elsewhere")
|
|
90
|
-
return
|
|
102
|
+
return submissionConstraintWords(openness.constraint);
|
|
91
103
|
/*
|
|
92
104
|
* "Filled" is two different facts and a worker deserves the right one.
|
|
93
105
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openness.js","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":";;AAoCA,kCAsCC;
|
|
1
|
+
{"version":3,"file":"openness.js","sourceRoot":"","sources":["../../../src/data/openness.ts"],"names":[],"mappings":";;AAoCA,kCAsCC;AASD,8DAMC;AAqCD,0BAMC;AAiBD,oCA0DC;AA/MD,2CAAwC;AAoCxC,SAAgB,WAAW,CAAC,GAAc,EAAE,MAAY,IAAI,IAAI,EAAE;IAChE,sEAAsE;IACtE,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3D,IAAI,GAAG,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9F,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAE/F;;uBAEmB;IACnB,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;IAElF,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AASD,SAAgB,yBAAyB,CAAC,UAA4C;IACpF,IAAI,UAAU,KAAK,gBAAgB;QAAE,OAAO,mCAAmC,CAAC;IAChF,IAAI,UAAU,KAAK,iBAAiB;QAAE,OAAO,+DAA+D,CAAC;IAC7G,IAAI,UAAU,KAAK,uBAAuB;QAAE,OAAO,0EAA0E,CAAC;IAC9H,IAAI,UAAU,KAAK,gBAAgB;QAAE,OAAO,6CAA6C,CAAC;IAC1F,OAAO,0DAA0D,CAAC;AACpE,CAAC;AAqCD,SAAgB,OAAO,CAAC,GAA0C,EAAE,UAA+B,EAAE,MAAY,IAAI,IAAI,EAAE;IACzH;8EAC0E;IAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IACpC,OAAO,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;AACrG,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAgB,YAAY,CAAC,GAA8E,EAAE,WAAyB,WAAW,CAAC,GAAG,CAAC;IACpJ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB;;;;;WAKG;QACH,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,kCAAkC,CAAC,CAAC,CAAC,wEAAwE,CAAC;QACzL,IAAI,QAAQ,CAAC,GAAG,KAAK,MAAM;YAAE,OAAO,uDAAuD,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC1I,IAAI,QAAQ,CAAC,GAAG,KAAK,UAAU;YAAE,OAAO,wEAAwE,CAAC;QACjH;;;;WAIG;QACH,IAAI,QAAQ,CAAC,GAAG,KAAK,WAAW;YAAE,OAAO,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxF;;;;;;;;WAQG;QACH,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC9B,sGAAsG;YACtG,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YACrD,IAAI,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ;gBAAE,OAAO,8CAA8C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,+BAA+B,CAAC;YACxJ,OAAO,GAAG,CAAC,QAAQ,GAAG,CAAC;gBACrB,CAAC,CAAC,yCAAyC;gBAC3C,CAAC,CAAC,mEAAmE,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ,CAAC,GAAG,KAAK,OAAO;YAAE,OAAO,qCAAqC,CAAC;QAC3E,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC;;;;;OAKG;IACH,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvD;gFAC4E;IAC5E,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpH,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,GAAG,MAAM,4BAA4B,CAAC;IAClE;sEACkE;IAClE,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,MAAM,GAAG,SAAS,OAAO,KAAK,kBAAkB,CAAC;IAClG,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,GAAG,MAAM,sBAAsB,CAAC;IAC/D,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orgPayouts.d.ts","sourceRoot":"","sources":["../../../src/data/orgPayouts.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAyD,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGxH,KAAK,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAAC,kBAAkB,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"orgPayouts.d.ts","sourceRoot":"","sources":["../../../src/data/orgPayouts.ts"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAkB,KAAK,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAyD,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGxH,KAAK,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAAC,kBAAkB,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAA;CAAE,CAAC;AAKvN,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAqB5E;AAKD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAAC,CASzF;AAED,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,GAAE,OAAO,KAAa,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAepI;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,wGAAwG;IACxG,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kIAAkI;IAClI,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAClC,+HAA+H;IAC/H,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,SAAS,EAChB,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAgB,EAC/D,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAgB,GAC9D,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsBhC;AAED,yIAAyI;AACzI,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAStE;AAED,kGAAkG;AAClG,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQtE;AAED,4GAA4G;AAC5G,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAOD;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,QAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMlG;AAED,6EAA6E;AAC7E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,GAAE,QAAwB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGtH;AAED,6DAA6D;AAC7D,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAAmI,CAAC;AAElL,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUzD"}
|
|
@@ -45,6 +45,8 @@ async function readOrgPayouts(org) {
|
|
|
45
45
|
settingsId: ref?.id ?? null
|
|
46
46
|
};
|
|
47
47
|
}
|
|
48
|
+
/** An ask minted as a dao (an older flow): it carries the ask's own documents (`#done`, `#vct`, `#rub`, a DoneMeans), which no company does. */
|
|
49
|
+
const isAskEntity = (iid) => (iid.linkedResource ?? []).some((resource) => /#(done|vct|rub)$/.test(resource?.id ?? "") || resource?.type === "DoneMeans");
|
|
48
50
|
/**
|
|
49
51
|
* The orgs this address may post for: daos it owns whose IID gives it
|
|
50
52
|
* authentication. shortcut: found by ownership, so an admin who is not the owner is not listed; upgrade by querying IIDs by key if orgs add admins.
|
|
@@ -56,8 +58,8 @@ async function adminOrgs(address) {
|
|
|
56
58
|
const ids = owned.entities.nodes.map((node) => node.id);
|
|
57
59
|
if (ids.length === 0)
|
|
58
60
|
return [];
|
|
59
|
-
const iids = await (0, gql_ts_1.gql)(`query { iids(filter: {id: {in: ${JSON.stringify(ids)}}}) { nodes { id authentication verificationMethod } } }`, 30);
|
|
60
|
-
const admin = iids.iids.nodes.filter((iid) => (0, payoutSettings_ts_1.canEditIid)(iid, address)).map((iid) => iid.id);
|
|
61
|
+
const iids = await (0, gql_ts_1.gql)(`query { iids(filter: {id: {in: ${JSON.stringify(ids)}}}) { nodes { id authentication verificationMethod linkedResource } } }`, 30);
|
|
62
|
+
const admin = iids.iids.nodes.filter((iid) => (0, payoutSettings_ts_1.canEditIid)(iid, address) && !isAskEntity(iid)).map((iid) => iid.id);
|
|
61
63
|
const names = await (0, profiles_ts_1.entityNames)(admin).catch(() => new Map());
|
|
62
64
|
return admin.map((did) => ({ did, name: names.get(did) ?? did.slice(-8) }));
|
|
63
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orgPayouts.js","sourceRoot":"","sources":["../../../src/data/orgPayouts.ts"],"names":[],"mappings":";;;AA+BA,wCAqBC;
|
|
1
|
+
{"version":3,"file":"orgPayouts.js","sourceRoot":"","sources":["../../../src/data/orgPayouts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
import { type Links } from "./askEntity.ts";
|
|
2
|
+
import type { IncludeGroup } from "../names/client.ts";
|
|
2
3
|
export declare const cleanEntityName: (raw: unknown) => string | null;
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
/** What `entityNames` asks the names worker for: the name and where it came from. */
|
|
5
|
+
export declare const ENTITY_NAME_INCLUDE: readonly IncludeGroup[];
|
|
6
|
+
/** How long `entityNames` waits for the worker before it reads the index itself; the late answer still fills the memo. */
|
|
7
|
+
export declare const ENTITY_NAMES_DEADLINE_MS = 2500;
|
|
8
|
+
/**
|
|
9
|
+
* Entity names read here, from the index this host is configured with: one Blocksync query for the batch, then
|
|
10
|
+
* each entity's profile document — its `name`, else `alsoKnownAs` (an ask's task sentence), clamped to 120
|
|
11
|
+
* characters and nothing else. An entity the index has no row for is absent; one with no name maps to null.
|
|
12
|
+
* Throws when the index cannot be read, so a caller that persists names (the board) can tell "none" from "not now".
|
|
13
|
+
*/
|
|
14
|
+
export declare function entityNamesFromIndex(ids: (string | null | undefined)[]): Promise<Map<string, string | null>>;
|
|
15
|
+
/**
|
|
16
|
+
* Entity names: the IXO Names worker first, in one batched request (`names/names.ts`), then this module's own rule
|
|
17
|
+
* for every entity the worker did not name in time — the profile document's `name`, else `alsoKnownAs`.
|
|
18
|
+
*
|
|
19
|
+
* The fallback is not only for failures. The worker's cleaning refuses text the old rule showed — a title that
|
|
20
|
+
* starts like a scheme ("Survey: count the bins…"), carries `www.` or `://`, or names an address or a DID — and
|
|
21
|
+
* no title an ask showed before may disappear or change. So the worker's name is taken only when it is this
|
|
22
|
+
* module's rule too: from the profile document (`entity`) or, for an entity whose profile publishes no name, its
|
|
23
|
+
* `alsoKnownAs` (`entity-alias`; the worker never puts the alias in place of a profile name it refused). Those
|
|
24
|
+
* differ from the old reading only in whitespace and invisible characters. Everything else — no answer in time,
|
|
25
|
+
* an incomplete one, no name — is read here (`entityNamesFromIndex`).
|
|
26
|
+
*
|
|
27
|
+
* Waits at most `deadlineMs` (default 2.5 s) for the worker, without cancelling it. Only entities are named;
|
|
28
|
+
* anything else, and every failure of both paths, is absent (names are decoration). Never throws.
|
|
29
|
+
*/
|
|
30
|
+
export declare function entityNames(ids: (string | null | undefined)[], options?: {
|
|
31
|
+
deadlineMs?: number;
|
|
32
|
+
}): Promise<Map<string, string>>;
|
|
33
|
+
/** What `orgProfile` asks the names worker for. */
|
|
34
|
+
export declare const ORG_PROFILE_INCLUDE: readonly IncludeGroup[];
|
|
35
|
+
/**
|
|
36
|
+
* An organisation's name and logo (`logo`, else `image`, as `buildProfile` writes them): from the names worker when
|
|
37
|
+
* its answer settles them, else from its `#pro` (blocksync `settings.Profile`); the name falls back to `alsoKnownAs`.
|
|
38
|
+
* Never throws.
|
|
39
|
+
*/
|
|
5
40
|
export declare function orgProfile(entityDid: string): Promise<{
|
|
6
41
|
name: string | null;
|
|
7
42
|
logo: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/data/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../../src/data/profiles.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAMxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA+BvD,eAAO,MAAM,eAAe,GAAI,KAAK,OAAO,KAAG,MAAM,GAAG,IAAgC,CAAC;AAuCzF,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAAa,CAAC;AAErE,0HAA0H;AAC1H,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAQ7C;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAYlH;AAaD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA8BzI;AAED,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,EAAE,SAAS,YAAY,EAAsB,CAAC;AAiB9E;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAezG;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,CAGlK;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyBpF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.cleanEntityName = void 0;
|
|
3
|
+
exports.ORG_PROFILE_INCLUDE = exports.ENTITY_NAMES_DEADLINE_MS = exports.ENTITY_NAME_INCLUDE = exports.cleanEntityName = void 0;
|
|
4
|
+
exports.entityNamesFromIndex = entityNamesFromIndex;
|
|
4
5
|
exports.entityNames = entityNames;
|
|
5
6
|
exports.orgProfile = orgProfile;
|
|
6
7
|
exports.adminOrg = adminOrg;
|
|
@@ -9,6 +10,9 @@ const gql_ts_1 = require("./gql.js");
|
|
|
9
10
|
const askEntity_ts_1 = require("./askEntity.js");
|
|
10
11
|
const askLinks_ts_1 = require("./askLinks.js");
|
|
11
12
|
const outbound_ts_1 = require("./outbound.js");
|
|
13
|
+
const names_ts_1 = require("../names/names.js");
|
|
14
|
+
const env_ts_1 = require("../chain/env.js");
|
|
15
|
+
const network_ts_1 = require("../network.js");
|
|
12
16
|
const clean = (value) => value.trim().replace(/[\r\n]+$/, "");
|
|
13
17
|
/**
|
|
14
18
|
* The board reads **every** claim collection on the network, so the entity
|
|
@@ -56,34 +60,135 @@ async function fetchProfile(entity) {
|
|
|
56
60
|
const logo = [profile?.logo, profile?.image].find((value) => typeof value === "string" && (0, outbound_ts_1.reachable)(value.trim()));
|
|
57
61
|
return { name: (0, exports.cleanEntityName)(profile?.name), logo: logo?.trim() ?? null };
|
|
58
62
|
}
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
/** What `entityNames` asks the names worker for: the name and where it came from. */
|
|
64
|
+
exports.ENTITY_NAME_INCLUDE = ["name"];
|
|
65
|
+
/** How long `entityNames` waits for the worker before it reads the index itself; the late answer still fills the memo. */
|
|
66
|
+
exports.ENTITY_NAMES_DEADLINE_MS = 2500;
|
|
67
|
+
const ENTITY_QUERY = (ids) => `query { entities(filter: {id: {in: [${ids.map((id) => JSON.stringify(id)).join(", ")}]}}) { nodes { id alsoKnownAs settings service } } }`;
|
|
68
|
+
/** `alsoKnownAs`, as this module has always taken it: any non-empty string that is not a DID, clamped. */
|
|
69
|
+
const aliasOf = (entity) => (entity.alsoKnownAs && !entity.alsoKnownAs.startsWith("did:") ? (0, exports.cleanEntityName)(entity.alsoKnownAs) : null);
|
|
70
|
+
/**
|
|
71
|
+
* Entity names read here, from the index this host is configured with: one Blocksync query for the batch, then
|
|
72
|
+
* each entity's profile document — its `name`, else `alsoKnownAs` (an ask's task sentence), clamped to 120
|
|
73
|
+
* characters and nothing else. An entity the index has no row for is absent; one with no name maps to null.
|
|
74
|
+
* Throws when the index cannot be read, so a caller that persists names (the board) can tell "none" from "not now".
|
|
75
|
+
*/
|
|
76
|
+
async function entityNamesFromIndex(ids) {
|
|
77
|
+
const found = new Map();
|
|
78
|
+
const unique = [...new Set(ids.filter((id) => Boolean(id)))];
|
|
79
|
+
if (unique.length === 0)
|
|
80
|
+
return found;
|
|
81
|
+
const data = await (0, gql_ts_1.gql)(ENTITY_QUERY(unique), 300);
|
|
82
|
+
await Promise.all(data.entities.nodes.map(async (entity) => {
|
|
83
|
+
/* `alsoKnownAs` is on chain and just as much a stranger's string. */
|
|
84
|
+
found.set(entity.id, (await fetchProfile(entity)).name ?? aliasOf(entity));
|
|
85
|
+
}));
|
|
86
|
+
return found;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Whether `entityNames` asks the names worker. A host that pointed the SDK at an index of its own
|
|
90
|
+
* (`configure({ graphqlUrl })` / `NEXT_PUBLIC_GRAPHQL_URL` other than the network's) and named no worker keeps
|
|
91
|
+
* reading names from that index: the public worker knows only the public networks.
|
|
92
|
+
*/
|
|
93
|
+
function namesFromWorker() {
|
|
94
|
+
if ((0, names_ts_1.namesUrlConfigured)())
|
|
95
|
+
return true;
|
|
96
|
+
const index = (0, gql_ts_1.indexUrl)().trim().replace(/\/+$/, "");
|
|
97
|
+
return !index || index === (0, env_ts_1.chainEndpointsFor)((0, network_ts_1.network)()).graphqlUrl.replace(/\/+$/, "");
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Entity names: the IXO Names worker first, in one batched request (`names/names.ts`), then this module's own rule
|
|
101
|
+
* for every entity the worker did not name in time — the profile document's `name`, else `alsoKnownAs`.
|
|
102
|
+
*
|
|
103
|
+
* The fallback is not only for failures. The worker's cleaning refuses text the old rule showed — a title that
|
|
104
|
+
* starts like a scheme ("Survey: count the bins…"), carries `www.` or `://`, or names an address or a DID — and
|
|
105
|
+
* no title an ask showed before may disappear or change. So the worker's name is taken only when it is this
|
|
106
|
+
* module's rule too: from the profile document (`entity`) or, for an entity whose profile publishes no name, its
|
|
107
|
+
* `alsoKnownAs` (`entity-alias`; the worker never puts the alias in place of a profile name it refused). Those
|
|
108
|
+
* differ from the old reading only in whitespace and invisible characters. Everything else — no answer in time,
|
|
109
|
+
* an incomplete one, no name — is read here (`entityNamesFromIndex`).
|
|
110
|
+
*
|
|
111
|
+
* Waits at most `deadlineMs` (default 2.5 s) for the worker, without cancelling it. Only entities are named;
|
|
112
|
+
* anything else, and every failure of both paths, is absent (names are decoration). Never throws.
|
|
113
|
+
*/
|
|
114
|
+
async function entityNames(ids, options = {}) {
|
|
115
|
+
const found = new Map();
|
|
61
116
|
const unique = [...new Set(ids.filter((id) => Boolean(id)))];
|
|
62
117
|
if (unique.length === 0)
|
|
63
|
-
return
|
|
118
|
+
return found;
|
|
119
|
+
let missing = unique;
|
|
64
120
|
try {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
121
|
+
if (namesFromWorker()) {
|
|
122
|
+
const results = await (0, names_ts_1.beforeDeadline)((0, names_ts_1.names)().resolve(unique, { include: exports.ENTITY_NAME_INCLUDE }), options.deadlineMs ?? exports.ENTITY_NAMES_DEADLINE_MS);
|
|
123
|
+
missing = [];
|
|
124
|
+
for (const id of unique) {
|
|
125
|
+
const result = results?.[id];
|
|
126
|
+
/* Known not to be an entity (the client classifies even when the worker did not answer): never one the index
|
|
127
|
+
would name. An id the worker calls `unknown` is not that: it asks the index, as it always did. */
|
|
128
|
+
if (result && result.kind !== "entity" && result.kind !== "unknown")
|
|
129
|
+
continue;
|
|
130
|
+
const name = result?.source === "entity" || result?.source === "entity-alias" ? (result.name ?? null) : null;
|
|
131
|
+
if (name)
|
|
132
|
+
found.set(id, name);
|
|
133
|
+
else
|
|
134
|
+
missing.push(id);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
72
137
|
}
|
|
73
138
|
catch {
|
|
74
|
-
//
|
|
139
|
+
// An invalid network throws from names(); the index is asked for all of them.
|
|
75
140
|
}
|
|
76
|
-
|
|
141
|
+
if (missing.length > 0) {
|
|
142
|
+
try {
|
|
143
|
+
for (const [id, name] of await entityNamesFromIndex(missing))
|
|
144
|
+
if (name)
|
|
145
|
+
found.set(id, name);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Names are decoration; the data stands without them.
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return found;
|
|
77
152
|
}
|
|
78
|
-
|
|
79
|
-
|
|
153
|
+
/** What `orgProfile` asks the names worker for. */
|
|
154
|
+
exports.ORG_PROFILE_INCLUDE = ["image", "name"];
|
|
155
|
+
/**
|
|
156
|
+
* An organisation's name and logo from the names worker, when its answer settles both: a name by this module's rule
|
|
157
|
+
* (as `entityNames`), and a `logo`, or no picture at all (`image` null in a complete answer: the document has neither
|
|
158
|
+
* field). Null otherwise, and the document is read. That covers a worker with no `logo` field yet and the rest of the
|
|
159
|
+
* `logo: null` answers, because `image` alone cannot say: it prefers the document's `image`, which can be a cover
|
|
160
|
+
* photo, while an org's avatar is its logo.
|
|
161
|
+
*/
|
|
162
|
+
async function orgProfileFromWorker(entityDid) {
|
|
163
|
+
if (!namesFromWorker())
|
|
164
|
+
return null;
|
|
165
|
+
const result = (await (0, names_ts_1.beforeDeadline)((0, names_ts_1.names)().resolve([entityDid], { include: exports.ORG_PROFILE_INCLUDE }), exports.ENTITY_NAMES_DEADLINE_MS))?.[entityDid];
|
|
166
|
+
if (result?.kind !== "entity" || !result.name || (result.source !== "entity" && result.source !== "entity-alias"))
|
|
167
|
+
return null;
|
|
168
|
+
if (typeof result.logo === "string")
|
|
169
|
+
return { name: result.name, logo: result.logo };
|
|
170
|
+
return result.complete && result.image === null ? { name: result.name, logo: null } : null;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* An organisation's name and logo (`logo`, else `image`, as `buildProfile` writes them): from the names worker when
|
|
174
|
+
* its answer settles them, else from its `#pro` (blocksync `settings.Profile`); the name falls back to `alsoKnownAs`.
|
|
175
|
+
* Never throws.
|
|
176
|
+
*/
|
|
80
177
|
async function orgProfile(entityDid) {
|
|
178
|
+
try {
|
|
179
|
+
const settled = await orgProfileFromWorker(entityDid);
|
|
180
|
+
if (settled)
|
|
181
|
+
return settled;
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// An invalid network throws from names(); the document is read instead.
|
|
185
|
+
}
|
|
81
186
|
try {
|
|
82
187
|
const node = (await (0, gql_ts_1.gql)(ENTITY_QUERY([entityDid]), 300)).entities.nodes[0];
|
|
83
188
|
if (!node)
|
|
84
189
|
return { name: null, logo: null };
|
|
85
190
|
const { name, logo } = await fetchProfile(node);
|
|
86
|
-
return { name: name ?? (node
|
|
191
|
+
return { name: name ?? aliasOf(node), logo };
|
|
87
192
|
}
|
|
88
193
|
catch {
|
|
89
194
|
return { name: null, logo: null };
|