@rightkit/social-ui 0.0.0-stage → 0.1.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/CHANGELOG.md +5 -0
- package/LICENSE-APACHE +201 -0
- package/LICENSE-MIT +21 -0
- package/README.md +40 -2
- package/dist/appName.d.ts +2 -0
- package/dist/appName.js +8 -0
- package/dist/components/ScopeSelect.d.ts +7 -0
- package/dist/components/ScopeSelect.js +6 -0
- package/dist/components/Shared.d.ts +34 -0
- package/dist/components/Shared.js +55 -0
- package/dist/data/derive.d.ts +21 -0
- package/dist/data/derive.js +47 -0
- package/dist/data/draftRules.d.ts +10 -0
- package/dist/data/draftRules.js +20 -0
- package/dist/data/engine/engineDataSource.d.ts +194 -0
- package/dist/data/engine/engineDataSource.js +836 -0
- package/dist/data/engine/errors.d.ts +13 -0
- package/dist/data/engine/errors.js +21 -0
- package/dist/data/engine/mapping.d.ts +172 -0
- package/dist/data/engine/mapping.js +1487 -0
- package/dist/data/engine/protocol.d.ts +910 -0
- package/dist/data/engine/protocol.js +67 -0
- package/dist/data/index.d.ts +18 -0
- package/dist/data/index.js +23 -0
- package/dist/data/mock/devSource.d.ts +7 -0
- package/dist/data/mock/devSource.js +10 -0
- package/dist/data/mock/fixtures-analytics.d.ts +7 -0
- package/dist/data/mock/fixtures-analytics.js +123 -0
- package/dist/data/mock/fixtures-briefs.d.ts +4 -0
- package/dist/data/mock/fixtures-briefs.js +230 -0
- package/dist/data/mock/fixtures-content.d.ts +4 -0
- package/dist/data/mock/fixtures-content.js +89 -0
- package/dist/data/mock/fixtures-digests.d.ts +3 -0
- package/dist/data/mock/fixtures-digests.js +40 -0
- package/dist/data/mock/fixtures-drafts.d.ts +2 -0
- package/dist/data/mock/fixtures-drafts.js +74 -0
- package/dist/data/mock/fixtures-gate.d.ts +3 -0
- package/dist/data/mock/fixtures-gate.js +49 -0
- package/dist/data/mock/fixtures-hooks.d.ts +2 -0
- package/dist/data/mock/fixtures-hooks.js +103 -0
- package/dist/data/mock/fixtures-inbox.d.ts +11 -0
- package/dist/data/mock/fixtures-inbox.js +213 -0
- package/dist/data/mock/fixtures-links.d.ts +5 -0
- package/dist/data/mock/fixtures-links.js +89 -0
- package/dist/data/mock/fixtures-memory.d.ts +3 -0
- package/dist/data/mock/fixtures-memory.js +148 -0
- package/dist/data/mock/fixtures-ops.d.ts +15 -0
- package/dist/data/mock/fixtures-ops.js +403 -0
- package/dist/data/mock/fixtures-optimise.d.ts +18 -0
- package/dist/data/mock/fixtures-optimise.js +221 -0
- package/dist/data/mock/fixtures-pacing.d.ts +5 -0
- package/dist/data/mock/fixtures-pacing.js +285 -0
- package/dist/data/mock/fixtures-publish.d.ts +2 -0
- package/dist/data/mock/fixtures-publish.js +129 -0
- package/dist/data/mock/fixtures-store.d.ts +10 -0
- package/dist/data/mock/fixtures-store.js +13 -0
- package/dist/data/mock/fixtures-variants.d.ts +5 -0
- package/dist/data/mock/fixtures-variants.js +138 -0
- package/dist/data/mock/fixtures.d.ts +6 -0
- package/dist/data/mock/fixtures.js +420 -0
- package/dist/data/mock/mockDataSource.d.ts +98 -0
- package/dist/data/mock/mockDataSource.js +903 -0
- package/dist/data/money.d.ts +14 -0
- package/dist/data/money.js +36 -0
- package/dist/data/platforms.d.ts +12 -0
- package/dist/data/platforms.js +26 -0
- package/dist/data/source.d.ts +196 -0
- package/dist/data/source.js +1 -0
- package/dist/data/time.d.ts +23 -0
- package/dist/data/time.js +86 -0
- package/dist/data/types.d.ts +1092 -0
- package/dist/data/types.js +3 -0
- package/dist/env.d.ts +59 -0
- package/dist/hooks/useAsync.d.ts +19 -0
- package/dist/hooks/useAsync.js +25 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +58 -0
- package/dist/lib/host.d.ts +21 -0
- package/dist/lib/host.js +32 -0
- package/dist/lib/shell.d.ts +156 -0
- package/dist/lib/shell.js +16 -0
- package/dist/screens/AccountsScreen.d.ts +8 -0
- package/dist/screens/AccountsScreen.js +100 -0
- package/dist/screens/AnalyticsScreen.d.ts +7 -0
- package/dist/screens/AnalyticsScreen.js +64 -0
- package/dist/screens/ApprovalsScreen.d.ts +10 -0
- package/dist/screens/ApprovalsScreen.js +144 -0
- package/dist/screens/BriefsScreen.d.ts +7 -0
- package/dist/screens/BriefsScreen.js +83 -0
- package/dist/screens/CalendarScreen.d.ts +10 -0
- package/dist/screens/CalendarScreen.js +143 -0
- package/dist/screens/CampaignsScreen.d.ts +7 -0
- package/dist/screens/CampaignsScreen.js +52 -0
- package/dist/screens/ChannelMemoryScreen.d.ts +7 -0
- package/dist/screens/ChannelMemoryScreen.js +109 -0
- package/dist/screens/ContentScreen.d.ts +7 -0
- package/dist/screens/ContentScreen.js +64 -0
- package/dist/screens/DigestsScreen.d.ts +7 -0
- package/dist/screens/DigestsScreen.js +53 -0
- package/dist/screens/DraftsScreen.d.ts +10 -0
- package/dist/screens/DraftsScreen.js +108 -0
- package/dist/screens/FailuresScreen.d.ts +8 -0
- package/dist/screens/FailuresScreen.js +111 -0
- package/dist/screens/HookTestsScreen.d.ts +7 -0
- package/dist/screens/HookTestsScreen.js +54 -0
- package/dist/screens/InboxScreen.d.ts +12 -0
- package/dist/screens/InboxScreen.js +76 -0
- package/dist/screens/LinksScreen.d.ts +7 -0
- package/dist/screens/LinksScreen.js +52 -0
- package/dist/screens/PacingScreen.d.ts +7 -0
- package/dist/screens/PacingScreen.js +88 -0
- package/dist/screens/PublishJobsScreen.d.ts +7 -0
- package/dist/screens/PublishJobsScreen.js +66 -0
- package/dist/screens/SuggestionsScreen.d.ts +8 -0
- package/dist/screens/SuggestionsScreen.js +94 -0
- package/dist/screens/TextGateScreen.d.ts +7 -0
- package/dist/screens/TextGateScreen.js +111 -0
- package/dist/screens/ThreadsScreen.d.ts +8 -0
- package/dist/screens/ThreadsScreen.js +113 -0
- package/dist/screens/TypedBriefsScreen.d.ts +7 -0
- package/dist/screens/TypedBriefsScreen.js +75 -0
- package/dist/screens/labels.d.ts +121 -0
- package/dist/screens/labels.js +272 -0
- package/package.json +56 -3
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import type { DataSource, Result, UnmappedAccount as UnmappedAccountView } from "../source.js";
|
|
2
|
+
import type { Account, AccountDisconnect, Campaign, CampaignAttribution, ChannelLink, DateRange, Digest, FailureItem, FailureResolution, ModerationCapability, PublishJob, PublishJobRecord, ManualDraft, OperatorScope, OptimiseProposal, ReconcileResult, RejectDecision, SpendAllowance, SpendPrice, SpendReport, ThreadItem, TrackedLink, HookTestSet, ContentDetail, ContentExperimentSummary, ContentRecord, DigestApplication, ResearchDigest, DeliveryEnvelope, DispatchAttempt, GateCheck, GatePolicy, GateRecord, OutgoingBrief, OutgoingBriefDetail, ChannelMemoryDetail, ChannelMemoryRevision, ProofRecord, ProofStatus, TypedBrief, BriefVariant, AnalyticsObservation, AnalyticsPost, MetricImport, HeartbeatStatus, RestoreReceiptList, InboxListing, InboxRaw, InboxStats, PublishNextView, PublishQuota } from "../types.js";
|
|
3
|
+
export declare class EngineDataSource implements DataSource {
|
|
4
|
+
readonly kind: "daemon";
|
|
5
|
+
/** Accounts from the last listAccounts that the desktop could not map. */
|
|
6
|
+
private unmapped;
|
|
7
|
+
/**
|
|
8
|
+
* The browser clock. The engine has no clock method yet, so countdowns use this value and not the
|
|
9
|
+
* daemon's clock. See "Engine gaps" in the design doc.
|
|
10
|
+
*/
|
|
11
|
+
nowUtc(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Every stored account, from account.list, mapped to the operator's Account. Fields the engine
|
|
14
|
+
* does not hold take the named fallbacks in mapping.ts ("Accounts"). Each account maps on its own:
|
|
15
|
+
* one whose platform or state the desktop does not show yet is left out of the result and kept,
|
|
16
|
+
* with its typed error, in unmappedAccounts(). The other accounts still load. A failed call throws.
|
|
17
|
+
*/
|
|
18
|
+
listAccounts(): Promise<Account[]>;
|
|
19
|
+
/** The accounts the last listAccounts could not map, each with the reason the desktop gives. */
|
|
20
|
+
unmappedAccounts(): readonly UnmappedAccountView[];
|
|
21
|
+
/**
|
|
22
|
+
* Every calendar entry in the range. Each entry carries its publish progress (permalink, waiting
|
|
23
|
+
* time, failure) from the engine's publish job for that entry revision. Publish reads run in every
|
|
24
|
+
* role, so the desktop sees the daemon's progress.
|
|
25
|
+
*/
|
|
26
|
+
listJobs(range: DateRange): Promise<PublishJob[]>;
|
|
27
|
+
/** Null when the id is unknown to the engine for its scope (not_found). */
|
|
28
|
+
getJob(jobId: string): Promise<PublishJob | null>;
|
|
29
|
+
/**
|
|
30
|
+
* Failure rows from publish jobs in state failed, outcome_unknown, or cancelled with a reason, from
|
|
31
|
+
* publish.list per scope. A failed read throws (the screen's load error), so an empty list always
|
|
32
|
+
* means no failures. The failures do not depend on the digest, which still has no engine source.
|
|
33
|
+
*/
|
|
34
|
+
listFailures(): Promise<FailureItem[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Every publish job in one scope, from publish.list, newest first. A read of the stored job only: the desktop
|
|
37
|
+
* never steps, runs, reconciles, cancels or resolves a job. A failed read throws; an empty list is a state.
|
|
38
|
+
*/
|
|
39
|
+
listPublishJobs(scopeId: string): Promise<PublishJobRecord[]>;
|
|
40
|
+
listDigest(): Promise<Digest>;
|
|
41
|
+
listThreads(): Promise<ThreadItem[]>;
|
|
42
|
+
listModerationCapabilities(): Promise<ModerationCapability[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Approves exactly `revision`. The account is checked here first, as the daemon does; the engine
|
|
45
|
+
* then checks the revision itself. The engine approves without checking media readiness, so the
|
|
46
|
+
* screen's own gate is the only media check (see "Engine gaps").
|
|
47
|
+
*/
|
|
48
|
+
approve(jobId: string, revision: number, expectedAccountId: string): Promise<Result<PublishJob>>;
|
|
49
|
+
reject(jobId: string, decision: RejectDecision): Promise<Result<PublishJob>>;
|
|
50
|
+
/**
|
|
51
|
+
* Pauses one account. The engine's pause needs the revision the operator saw; the desktop reads the
|
|
52
|
+
* current revision first, so the write is a compare-and-swap against that read. A revision that
|
|
53
|
+
* moved in between is revision_conflict and nothing is paused.
|
|
54
|
+
*/
|
|
55
|
+
pauseAccount(id: string, reason: string): Promise<Result<Account>>;
|
|
56
|
+
/** Resumes one account, with the same revision read and compare-and-swap as pauseAccount. */
|
|
57
|
+
resumeAccount(id: string): Promise<Result<Account>>;
|
|
58
|
+
/**
|
|
59
|
+
* Disconnects one account with account.disconnect: the connection ends and the account's queued and waiting
|
|
60
|
+
* publish jobs are cancelled in one engine transaction. Same revision read and compare-and-swap as pauseAccount.
|
|
61
|
+
*/
|
|
62
|
+
disconnectAccount(id: string): Promise<Result<AccountDisconnect>>;
|
|
63
|
+
/**
|
|
64
|
+
* The platform check is publish.reconcile, which is refused in the desktop role. It never reaches
|
|
65
|
+
* the engine from here, so the desktop makes no platform call.
|
|
66
|
+
*/
|
|
67
|
+
reconcile(_jobId: string): Promise<Result<ReconcileResult>>;
|
|
68
|
+
/**
|
|
69
|
+
* Publish failures are resolved on the daemon (publish.reconcile and publish.cancel are role-gated).
|
|
70
|
+
* Other failure kinds have no engine method yet.
|
|
71
|
+
*/
|
|
72
|
+
resolveFailure(failureId: string, _resolution: FailureResolution, _note: string): Promise<Result<FailureItem>>;
|
|
73
|
+
resolveThread(_threadId: string): Promise<Result<ThreadItem>>;
|
|
74
|
+
snoozeThread(_threadId: string, _untilUtc: string): Promise<Result<ThreadItem>>;
|
|
75
|
+
/** Every draft in every stored channel, from draft.list per scope, newest update first. */
|
|
76
|
+
listDrafts(): Promise<ManualDraft[]>;
|
|
77
|
+
/** Approves exactly `revision` when the engine's gate passes. The disclosure phrases come from the caller. */
|
|
78
|
+
approveDraft(draftId: string, revision: number, disclosurePhrases: readonly string[]): Promise<Result<ManualDraft>>;
|
|
79
|
+
/** Records the operator's post. The engine checks the link: https, on an allowed host for the platform. */
|
|
80
|
+
markDraftPosted(draftId: string, revision: number, postedUrl: string): Promise<Result<ManualDraft>>;
|
|
81
|
+
/** Ends a drafted or approved draft with a reason. The engine refuses a blank reason. */
|
|
82
|
+
skipDraft(draftId: string, revision: number, reason: string): Promise<Result<ManualDraft>>;
|
|
83
|
+
/** Every stored channel, from channel.list, labelled as venture / channel / account. */
|
|
84
|
+
listScopes(): Promise<OperatorScope[]>;
|
|
85
|
+
/** Every suggestion in one scope, from optimise.list, in the engine's creation order. */
|
|
86
|
+
listProposals(scopeId: string): Promise<OptimiseProposal[]>;
|
|
87
|
+
/** One suggestion with its lineage, from optimise.get. Null when the engine does not hold it in this scope. */
|
|
88
|
+
getProposal(scopeId: string, proposalId: string): Promise<OptimiseProposal | null>;
|
|
89
|
+
/** Accepts at exactly `expectedRevision`. The engine creates the draft entry; nothing is approved here. */
|
|
90
|
+
acceptProposal(scopeId: string, proposalId: string, expectedRevision: number): Promise<Result<OptimiseProposal>>;
|
|
91
|
+
/** Dismisses at exactly `expectedRevision`. The engine writes only the suggestion row. */
|
|
92
|
+
dismissProposal(scopeId: string, proposalId: string, expectedRevision: number): Promise<Result<OptimiseProposal>>;
|
|
93
|
+
/** The month's allowance, from allowance.get. The engine's not_found is "no allowance set", so it returns null. */
|
|
94
|
+
getAllowance(scopeId: string, month: string): Promise<SpendAllowance | null>;
|
|
95
|
+
/** The month report, from spend.report. The engine's allowance_missing is "no allowance set", so it returns null. */
|
|
96
|
+
spendReport(scopeId: string, month: string): Promise<SpendReport | null>;
|
|
97
|
+
/** The latest version of every price route, from price.list, with qualification at the browser clock. */
|
|
98
|
+
listPrices(): Promise<SpendPrice[]>;
|
|
99
|
+
/** Every campaign in one scope, from campaign.list. */
|
|
100
|
+
listCampaigns(scopeId: string): Promise<Campaign[]>;
|
|
101
|
+
/** The tracked links of one campaign, from link.list filtered by campaign id. */
|
|
102
|
+
listCampaignLinks(scopeId: string, campaignId: string): Promise<TrackedLink[]>;
|
|
103
|
+
/** The visit counts of one campaign, from link.attribution. Null when the engine holds no such campaign in the scope. */
|
|
104
|
+
campaignAttribution(scopeId: string, campaignId: string): Promise<CampaignAttribution | null>;
|
|
105
|
+
/**
|
|
106
|
+
* Every tracked link in one scope. campaign.list gives the campaigns; for each one, link.list and link.attribution
|
|
107
|
+
* are read together. Both are read-only, and any failed read throws, so the screen shows its load error.
|
|
108
|
+
*/
|
|
109
|
+
listChannelLinks(scopeId: string): Promise<ChannelLink[]>;
|
|
110
|
+
/** Every hook test set in one scope, from hook_test.list. Reading the sets here decides nothing. */
|
|
111
|
+
listHookTests(scopeId: string): Promise<HookTestSet[]>;
|
|
112
|
+
/** One hook test set with its openings, from hook_test.get. Null when no set with this id is in the scope. */
|
|
113
|
+
getHookTest(scopeId: string, setId: string): Promise<HookTestSet | null>;
|
|
114
|
+
/** Every digest in one scope, from digest.list. */
|
|
115
|
+
listDigests(scopeId: string): Promise<ResearchDigest[]>;
|
|
116
|
+
/** One digest with its entries, from digest.get. Null when no digest with this id is in the scope. */
|
|
117
|
+
getDigest(scopeId: string, digestId: string): Promise<ResearchDigest | null>;
|
|
118
|
+
/** Which digest entries became draft calendar entries, from digest.applied. Null when the digest is not in the scope. */
|
|
119
|
+
digestApplications(scopeId: string, digestId: string): Promise<DigestApplication[] | null>;
|
|
120
|
+
/** Every content record in one scope, from content.list, read at the browser clock so expiry is derived. */
|
|
121
|
+
listContent(scopeId: string): Promise<ContentRecord[]>;
|
|
122
|
+
/** One record with its variants, from content.get. Null when no record with this id is in the scope. */
|
|
123
|
+
getContent(scopeId: string, contentId: string): Promise<ContentDetail | null>;
|
|
124
|
+
/** The variant comparison for one record, from content.experiment_summary. Null when the record is not in the scope. */
|
|
125
|
+
contentExperimentSummary(scopeId: string, contentId: string): Promise<ContentExperimentSummary | null>;
|
|
126
|
+
/** The latest gate policy, from gate_policy.get. Null when the engine answers policy_missing: nothing can pass. */
|
|
127
|
+
gatePolicy(scopeId: string): Promise<GatePolicy | null>;
|
|
128
|
+
/**
|
|
129
|
+
* A dry-run check of one script, from gate.check. Nothing is stored. A refusal (hidden characters, no
|
|
130
|
+
* policy) comes back as a Result with the engine's code, so the screen shows it as a notice.
|
|
131
|
+
*/
|
|
132
|
+
checkText(scopeId: string, subjectId: string, text: string): Promise<Result<GateCheck>>;
|
|
133
|
+
/** The stored verdict records of one subject, newest first, from gate.records. */
|
|
134
|
+
gateRecords(scopeId: string, subjectId: string): Promise<GateRecord[]>;
|
|
135
|
+
/** Every outgoing brief in one scope, from brief_out.list. */
|
|
136
|
+
listBriefs(scopeId: string): Promise<OutgoingBrief[]>;
|
|
137
|
+
/** One brief with its summary and document, from brief_out.get. Null when no brief has this request id in the scope. */
|
|
138
|
+
getBrief(scopeId: string, requestId: string): Promise<OutgoingBriefDetail | null>;
|
|
139
|
+
/** Every accepted delivery in one scope, from delivery.list. */
|
|
140
|
+
listDeliveries(scopeId: string): Promise<DeliveryEnvelope[]>;
|
|
141
|
+
/** One delivery envelope, from delivery.get. Null when no envelope has this id in the scope. */
|
|
142
|
+
getDelivery(scopeId: string, envelopeId: string): Promise<DeliveryEnvelope | null>;
|
|
143
|
+
/** The dispatch attempts of one brief, from dispatch.list filtered by request id, oldest first. */
|
|
144
|
+
listDispatchAttempts(scopeId: string, requestId: string): Promise<DispatchAttempt[]>;
|
|
145
|
+
/** The latest memory revision with its document, from memory.get. Null when the engine answers not_found: nothing written yet. */
|
|
146
|
+
channelMemory(scopeId: string): Promise<ChannelMemoryDetail | null>;
|
|
147
|
+
/** Every stored memory revision, newest first, from memory.history. An empty list when nothing is stored. */
|
|
148
|
+
channelMemoryHistory(scopeId: string): Promise<ChannelMemoryRevision[]>;
|
|
149
|
+
/** The proofs of one scope, from proof.list. A null status sends no status filter, so every status is listed. */
|
|
150
|
+
listProofs(scopeId: string, status: ProofStatus | null): Promise<ProofRecord[]>;
|
|
151
|
+
/** Every typed brief in one scope, from typed_brief.list, ordered by brief id. */
|
|
152
|
+
listTypedBriefs(scopeId: string): Promise<TypedBrief[]>;
|
|
153
|
+
/** One brief, from typed_brief.get. Null when the engine answers not_found: no brief with this id in the scope. */
|
|
154
|
+
getTypedBrief(scopeId: string, briefId: string): Promise<TypedBrief | null>;
|
|
155
|
+
/** The variants of one brief, from variant.list, ordered by platform then variant id. */
|
|
156
|
+
listBriefVariants(scopeId: string, briefId: string): Promise<BriefVariant[]>;
|
|
157
|
+
/** Every published post in one scope with its latest metrics, from analytics.summary. */
|
|
158
|
+
listAnalyticsPosts(scopeId: string): Promise<AnalyticsPost[]>;
|
|
159
|
+
/** The stored observations of one post, from analytics.list filtered to its job. The engine orders them oldest first. */
|
|
160
|
+
listAnalyticsObservations(scopeId: string, jobId: string): Promise<AnalyticsObservation[]>;
|
|
161
|
+
/** Every committed manual import in one scope, from metric_import.list. */
|
|
162
|
+
listMetricImports(scopeId: string): Promise<MetricImport[]>;
|
|
163
|
+
/** The heartbeat record's state at `nowUtc`, from heartbeat.status. Ages and states are the engine's. */
|
|
164
|
+
heartbeatStatus(nowUtc: string, staleAfterSecs: number): Promise<HeartbeatStatus>;
|
|
165
|
+
/** Every restore receipt, newest first, from store.restore_receipts. */
|
|
166
|
+
listRestoreReceipts(): Promise<RestoreReceiptList>;
|
|
167
|
+
/** The newest page of events of one channel account, or of the unmatched events when scopeId is null. */
|
|
168
|
+
listInbox(scopeId: string | null): Promise<InboxListing>;
|
|
169
|
+
/** The raw item of one event. Null when the engine holds no event with this id in the scope (not_found). */
|
|
170
|
+
getInboxEvent(scopeId: string | null, eventId: string): Promise<InboxRaw | null>;
|
|
171
|
+
/** Event and delivery counts from inbox.stats. The engine takes no input and keeps no per-channel refusal count. */
|
|
172
|
+
inboxStats(): Promise<InboxStats>;
|
|
173
|
+
/** publish.next for every account of one channel, decided at the browser clock. Every row is kept. */
|
|
174
|
+
listPublishNext(scopeId: string): Promise<PublishNextView>;
|
|
175
|
+
/** publish.quota_get for one account, read at the browser clock. A failed read throws; the screen shows it for that account. */
|
|
176
|
+
getPublishQuota(scopeId: string, platform: string, remoteAccount: string): Promise<PublishQuota>;
|
|
177
|
+
/** An accept or dismiss: the engine's reply as a Result. Revision and state errors come back as typed codes. */
|
|
178
|
+
private decideProposal;
|
|
179
|
+
/** Every stored channel's scope, from channel.list. Scope is the only key the engine has. */
|
|
180
|
+
private scopes;
|
|
181
|
+
/**
|
|
182
|
+
* The publish jobs in one scope, from publish.list. Reads run in every engine role. Any engine error
|
|
183
|
+
* throws, so the screen shows its load error rather than an empty list.
|
|
184
|
+
*/
|
|
185
|
+
private publishJobsFor;
|
|
186
|
+
/** An account write's reply: the stored account as an Account, or the mapped engine error. */
|
|
187
|
+
private accountResult;
|
|
188
|
+
/** A draft write's reply: the stored draft as a ManualDraft, or the mapped engine error. */
|
|
189
|
+
private draftResult;
|
|
190
|
+
/** A calendar write's reply: the stored entry as a job, or the mapped engine error. */
|
|
191
|
+
private entryResult;
|
|
192
|
+
/** The mapped error for a failed call. A revision conflict reads the current revision from the engine. */
|
|
193
|
+
private failure;
|
|
194
|
+
}
|