@graview/core 0.1.60 → 0.1.62
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 +23 -1
- package/dist/app-places.d.ts.map +1 -1
- package/dist/app-places.js +2 -2
- package/dist/app-places.js.map +1 -1
- package/dist/app.d.ts +10 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/arrangement.d.ts +2 -0
- package/dist/arrangement.d.ts.map +1 -1
- package/dist/arrangement.js +14 -0
- package/dist/arrangement.js.map +1 -1
- package/dist/capabilities.js +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +2 -1
- package/dist/catalog.js.map +1 -1
- package/dist/cli/check/context.d.ts +5 -0
- package/dist/cli/check/context.d.ts.map +1 -1
- package/dist/cli/check/context.js.map +1 -1
- package/dist/cli/check/face.d.ts +14 -0
- package/dist/cli/check/face.d.ts.map +1 -0
- package/dist/cli/check/face.js +161 -0
- package/dist/cli/check/face.js.map +1 -0
- package/dist/cli/check/hidden-reads.d.ts.map +1 -1
- package/dist/cli/check/hidden-reads.js +26 -0
- package/dist/cli/check/hidden-reads.js.map +1 -1
- package/dist/cli/check/index.d.ts +1 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +1 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/tidying.d.ts +14 -0
- package/dist/cli/check/tidying.d.ts.map +1 -0
- package/dist/cli/check/tidying.js +24 -0
- package/dist/cli/check/tidying.js.map +1 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +4 -4
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +14 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/docs.d.ts.map +1 -1
- package/dist/cli/docs.js +5 -3
- package/dist/cli/docs.js.map +1 -1
- package/dist/cli/document-schema.d.ts.map +1 -1
- package/dist/cli/document-schema.js +8 -2
- package/dist/cli/document-schema.js.map +1 -1
- package/dist/cli/index.d.ts +2 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +15 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +2 -1
- package/dist/cli/types.js.map +1 -1
- package/dist/compose.d.ts +14 -0
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +16 -1
- package/dist/compose.js.map +1 -1
- package/dist/css/sanitize.d.ts +125 -0
- package/dist/css/sanitize.d.ts.map +1 -0
- package/dist/css/sanitize.js +989 -0
- package/dist/css/sanitize.js.map +1 -0
- package/dist/css/tables.d.ts +55 -0
- package/dist/css/tables.d.ts.map +1 -0
- package/dist/css/tables.js +137 -0
- package/dist/css/tables.js.map +1 -0
- package/dist/css.d.ts +20 -0
- package/dist/css.d.ts.map +1 -0
- package/dist/css.js +19 -0
- package/dist/css.js.map +1 -0
- package/dist/days.d.ts +15 -0
- package/dist/days.d.ts.map +1 -1
- package/dist/days.js +21 -0
- package/dist/days.js.map +1 -1
- package/dist/describe.d.ts +1 -1
- package/dist/describe.d.ts.map +1 -1
- package/dist/document/act-findings.d.ts.map +1 -1
- package/dist/document/act-findings.js +80 -1
- package/dist/document/act-findings.js.map +1 -1
- package/dist/document/blocks.d.ts.map +1 -1
- package/dist/document/blocks.js +2 -1
- package/dist/document/blocks.js.map +1 -1
- package/dist/document/brand-check.d.ts +15 -1
- package/dist/document/brand-check.d.ts.map +1 -1
- package/dist/document/brand-check.js +80 -0
- package/dist/document/brand-check.js.map +1 -1
- package/dist/document/brand.d.ts.map +1 -1
- package/dist/document/brand.js +2 -0
- package/dist/document/brand.js.map +1 -1
- package/dist/document/compile-checked.d.ts.map +1 -1
- package/dist/document/compile-checked.js +4 -3
- package/dist/document/compile-checked.js.map +1 -1
- package/dist/document/compile.d.ts.map +1 -1
- package/dist/document/compile.js +54 -9
- package/dist/document/compile.js.map +1 -1
- package/dist/document/compiled.d.ts +18 -3
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +91 -10
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/connection-findings.d.ts.map +1 -1
- package/dist/document/connection-findings.js +219 -19
- package/dist/document/connection-findings.js.map +1 -1
- package/dist/document/connection-spec.d.ts +7 -0
- package/dist/document/connection-spec.d.ts.map +1 -1
- package/dist/document/connection-spec.js +26 -2
- package/dist/document/connection-spec.js.map +1 -1
- package/dist/document/covers.d.ts +48 -0
- package/dist/document/covers.d.ts.map +1 -0
- package/dist/document/covers.js +90 -0
- package/dist/document/covers.js.map +1 -0
- package/dist/document/describe-place.d.ts +3 -0
- package/dist/document/describe-place.d.ts.map +1 -1
- package/dist/document/describe-place.js +11 -0
- package/dist/document/describe-place.js.map +1 -1
- package/dist/document/described.d.ts +28 -0
- package/dist/document/described.d.ts.map +1 -1
- package/dist/document/diff.js +10 -1
- package/dist/document/diff.js.map +1 -1
- package/dist/document/edit.d.ts +1 -1
- package/dist/document/edit.d.ts.map +1 -1
- package/dist/document/edit.js +186 -18
- package/dist/document/edit.js.map +1 -1
- package/dist/document/expr/evaluate.d.ts +10 -1
- package/dist/document/expr/evaluate.d.ts.map +1 -1
- package/dist/document/expr/evaluate.js +110 -2
- package/dist/document/expr/evaluate.js.map +1 -1
- package/dist/document/expr/index.d.ts +1 -0
- package/dist/document/expr/index.d.ts.map +1 -1
- package/dist/document/expr/index.js +2 -0
- package/dist/document/expr/index.js.map +1 -1
- package/dist/document/expr/typing.d.ts +24 -0
- package/dist/document/expr/typing.d.ts.map +1 -0
- package/dist/document/expr/typing.js +219 -0
- package/dist/document/expr/typing.js.map +1 -0
- package/dist/document/expr/when.d.ts +52 -0
- package/dist/document/expr/when.d.ts.map +1 -0
- package/dist/document/expr/when.js +215 -0
- package/dist/document/expr/when.js.map +1 -0
- package/dist/document/expr-type-findings.d.ts +5 -0
- package/dist/document/expr-type-findings.d.ts.map +1 -0
- package/dist/document/expr-type-findings.js +90 -0
- package/dist/document/expr-type-findings.js.map +1 -0
- package/dist/document/field-spec.d.ts.map +1 -1
- package/dist/document/field-spec.js +5 -0
- package/dist/document/field-spec.js.map +1 -1
- package/dist/document/findings.d.ts +33 -2
- package/dist/document/findings.d.ts.map +1 -1
- package/dist/document/findings.js +14 -17
- package/dist/document/findings.js.map +1 -1
- package/dist/document/index.d.ts +6 -3
- package/dist/document/index.d.ts.map +1 -1
- package/dist/document/index.js +5 -2
- package/dist/document/index.js.map +1 -1
- package/dist/document/linked-findings.js +1 -1
- package/dist/document/linked-findings.js.map +1 -1
- package/dist/document/migrate.d.ts.map +1 -1
- package/dist/document/migrate.js +10 -4
- package/dist/document/migrate.js.map +1 -1
- package/dist/document/rule-line.d.ts +7 -3
- package/dist/document/rule-line.d.ts.map +1 -1
- package/dist/document/rule-line.js +17 -2
- package/dist/document/rule-line.js.map +1 -1
- package/dist/document/rule-reads.d.ts.map +1 -1
- package/dist/document/rule-reads.js +3 -1
- package/dist/document/rule-reads.js.map +1 -1
- package/dist/document/rules.d.ts +30 -0
- package/dist/document/rules.d.ts.map +1 -1
- package/dist/document/rules.js +74 -0
- package/dist/document/rules.js.map +1 -1
- package/dist/document/schema.d.ts +80 -2
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +90 -4
- package/dist/document/schema.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +3 -1
- package/dist/document/to-document.js.map +1 -1
- package/dist/document.schema.json +304 -5
- package/dist/formats.d.ts +21 -13
- package/dist/formats.d.ts.map +1 -1
- package/dist/formats.js +21 -13
- package/dist/formats.js.map +1 -1
- package/dist/import/coerce.d.ts.map +1 -1
- package/dist/import/coerce.js +16 -4
- package/dist/import/coerce.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/invariants/types.d.ts +7 -2
- package/dist/invariants/types.d.ts.map +1 -1
- package/dist/kind-list.d.ts +1 -0
- package/dist/kind-list.d.ts.map +1 -1
- package/dist/kind-list.js +2 -1
- package/dist/kind-list.js.map +1 -1
- package/dist/lines.d.ts.map +1 -1
- package/dist/lines.js +6 -2
- package/dist/lines.js.map +1 -1
- package/dist/mutations/form.d.ts +2 -0
- package/dist/mutations/form.d.ts.map +1 -1
- package/dist/mutations/form.js +6 -3
- package/dist/mutations/form.js.map +1 -1
- package/dist/mutations/types.d.ts +9 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/mutations/vote-suggestion.d.ts +67 -0
- package/dist/mutations/vote-suggestion.d.ts.map +1 -0
- package/dist/mutations/vote-suggestion.js +36 -0
- package/dist/mutations/vote-suggestion.js.map +1 -0
- package/dist/navigate.d.ts +7 -3
- package/dist/navigate.d.ts.map +1 -1
- package/dist/navigate.js +7 -3
- package/dist/navigate.js.map +1 -1
- package/dist/ops/lineage.d.ts +11 -1
- package/dist/ops/lineage.d.ts.map +1 -1
- package/dist/ops/lineage.js +6 -2
- package/dist/ops/lineage.js.map +1 -1
- package/dist/ops/suggestions.d.ts +33 -1
- package/dist/ops/suggestions.d.ts.map +1 -1
- package/dist/ops/suggestions.js +44 -2
- package/dist/ops/suggestions.js.map +1 -1
- package/dist/ops/types.d.ts +13 -0
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/types.js.map +1 -1
- package/dist/place-names.d.ts +42 -0
- package/dist/place-names.d.ts.map +1 -0
- package/dist/place-names.js +43 -0
- package/dist/place-names.js.map +1 -0
- package/dist/places.d.ts +2 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +2 -0
- package/dist/places.js.map +1 -1
- package/dist/scaffold/agents.d.ts +9 -1
- package/dist/scaffold/agents.d.ts.map +1 -1
- package/dist/scaffold/agents.js +33 -2
- package/dist/scaffold/agents.js.map +1 -1
- package/dist/scaffold/project.js +1 -1
- package/dist/schema/choice-words.d.ts.map +1 -1
- package/dist/schema/choice-words.js +3 -0
- package/dist/schema/choice-words.js.map +1 -1
- package/dist/starting-document.d.ts +73 -0
- package/dist/starting-document.d.ts.map +1 -0
- package/dist/starting-document.js +645 -0
- package/dist/starting-document.js.map +1 -0
- package/dist/store.d.ts +50 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +167 -27
- package/dist/store.js.map +1 -1
- package/dist/sync/connection.d.ts +20 -1
- package/dist/sync/connection.d.ts.map +1 -1
- package/dist/sync/connection.js +198 -34
- package/dist/sync/connection.js.map +1 -1
- package/dist/sync/engine.d.ts +13 -4
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +10 -6
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/google-calendar.d.ts +8 -0
- package/dist/sync/google-calendar.d.ts.map +1 -1
- package/dist/sync/google-calendar.js +16 -4
- package/dist/sync/google-calendar.js.map +1 -1
- package/dist/sync/guests.d.ts +44 -0
- package/dist/sync/guests.d.ts.map +1 -0
- package/dist/sync/guests.js +57 -0
- package/dist/sync/guests.js.map +1 -0
- package/dist/sync/notion-types.d.ts +7 -0
- package/dist/sync/notion-types.d.ts.map +1 -1
- package/dist/sync/notion-types.js +6 -1
- package/dist/sync/notion-types.js.map +1 -1
- package/dist/sync/recurrence.d.ts +41 -0
- package/dist/sync/recurrence.d.ts.map +1 -0
- package/dist/sync/recurrence.js +192 -0
- package/dist/sync/recurrence.js.map +1 -0
- package/dist/sync/types.d.ts +9 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/dist/theme/contrast.d.ts +2 -0
- package/dist/theme/contrast.d.ts.map +1 -1
- package/dist/theme/contrast.js +4 -0
- package/dist/theme/contrast.js.map +1 -1
- package/dist/theme/ground.d.ts +1 -2
- package/dist/theme/ground.d.ts.map +1 -1
- package/dist/theme/ground.js +2 -5
- package/dist/theme/ground.js.map +1 -1
- package/dist/theme/marks.d.ts +14 -2
- package/dist/theme/marks.d.ts.map +1 -1
- package/dist/theme/marks.js +20 -3
- package/dist/theme/marks.js.map +1 -1
- package/dist/theme/types.d.ts +22 -0
- package/dist/theme/types.d.ts.map +1 -1
- package/dist/theme/types.js.map +1 -1
- package/dist/tidying.d.ts +30 -4
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +110 -5
- package/dist/tidying.js.map +1 -1
- package/dist/trait-vocabulary.d.ts +17 -0
- package/dist/trait-vocabulary.d.ts.map +1 -0
- package/dist/trait-vocabulary.js +16 -0
- package/dist/trait-vocabulary.js.map +1 -0
- package/dist/traits.d.ts +79 -0
- package/dist/traits.d.ts.map +1 -0
- package/dist/traits.js +468 -0
- package/dist/traits.js.map +1 -0
- package/dist/typed.d.ts +4 -0
- package/dist/typed.d.ts.map +1 -1
- package/dist/typed.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +11 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { Lineage } from "../ops/lineage.js";
|
|
2
|
+
import type { Operation } from "../ops/types.js";
|
|
3
|
+
import type { Principal } from "../permissions/types.js";
|
|
4
|
+
import type { AnySchema } from "../schema/schema.js";
|
|
5
|
+
import type { AnyMutationDefinition, MutationCall } from "./types.js";
|
|
6
|
+
/** The name of the act that votes on a suggestion (Roadmap f-suggestion-votes). */
|
|
7
|
+
export declare const VOTE_SUGGESTION = "vote-suggestion";
|
|
8
|
+
/** A vote on a suggestion: for it, against it, or none (a vote withdrawn). */
|
|
9
|
+
export type Vote = "for" | "against" | null;
|
|
10
|
+
/** What a vote's op keeps (`Operation.vote`): which suggestion, and which way. */
|
|
11
|
+
export interface SuggestionVote {
|
|
12
|
+
/** The id of the suggestion's op. */
|
|
13
|
+
readonly suggestion: string;
|
|
14
|
+
readonly vote: Vote;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* WHAT THE DECLARATION SAYS OF SUGGESTIONS AS A WHOLE (`tidying` at the
|
|
18
|
+
* top of a document, Roadmap f-suggestion-votes): `autoAcceptAt`, the
|
|
19
|
+
* number of votes for a suggestion at which the app's own actor makes it
|
|
20
|
+
* without waiting for someone who may. Absent, a suggestion waits until
|
|
21
|
+
* one of them decides, however many voted. Handed to the store
|
|
22
|
+
* (`StoreOptions.tidying`), which is where it is honored.
|
|
23
|
+
*/
|
|
24
|
+
export interface AppTidying {
|
|
25
|
+
readonly autoAcceptAt?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* "VOTE ON A SUGGESTION" (Roadmap f-suggestion-votes): what Accept and
|
|
29
|
+
* Decline do from a seat that may see a suggestion and may not make the
|
|
30
|
+
* change — a reader, a visitor by link — so the person is heard rather
|
|
31
|
+
* than refused. Its arguments are the suggestion's id and the vote: `for`,
|
|
32
|
+
* `against`, or `null` to withdraw one. One standing vote per person: a
|
|
33
|
+
* later one replaces it.
|
|
34
|
+
*
|
|
35
|
+
* Every store answers to it and no list offers it: it is not one of the
|
|
36
|
+
* app's acts, and the tray offers it as Accept and Decline. It goes over
|
|
37
|
+
* the wire like any call, and is permitted to whoever may see the
|
|
38
|
+
* suggestion. The store makes its op itself (`VOTING.op`, filled in by
|
|
39
|
+
* `@graview/core/tidying`): no primitives, the vote on the op, so it folds
|
|
40
|
+
* to nothing and a build before it reads it as a change that touched
|
|
41
|
+
* nothing.
|
|
42
|
+
*/
|
|
43
|
+
export declare function voteSuggestionMutation<S extends AnySchema>(): AnyMutationDefinition<S>;
|
|
44
|
+
/** What `@graview/core/tidying` teaches the store about votes when it is loaded, as `PUBLISHING` does for a publish. */
|
|
45
|
+
export interface VotingServed {
|
|
46
|
+
/** The vote's op, judged as the voter sees the suggestion: a sentence when it is not waiting for them. */
|
|
47
|
+
op?: (store: object, made: {
|
|
48
|
+
readonly id: string;
|
|
49
|
+
readonly at: string;
|
|
50
|
+
}, call: MutationCall, batch: string, author: Principal, options: {
|
|
51
|
+
readonly via?: unknown;
|
|
52
|
+
}) => Operation;
|
|
53
|
+
/**
|
|
54
|
+
* What the vote just kept has the app's own actor make, when the
|
|
55
|
+
* declaration says a suggestion is made at `autoAcceptAt` votes for and
|
|
56
|
+
* this one reached it: the suggestion's calls, the actor, and a lineage
|
|
57
|
+
* naming the suggestion and its voters. Undefined when nothing is to be
|
|
58
|
+
* made.
|
|
59
|
+
*/
|
|
60
|
+
accepting?: (store: object, vote: Operation) => {
|
|
61
|
+
readonly calls: readonly MutationCall[];
|
|
62
|
+
readonly author: Principal;
|
|
63
|
+
readonly lineage: Lineage;
|
|
64
|
+
} | undefined;
|
|
65
|
+
}
|
|
66
|
+
export declare const VOTING: VotingServed;
|
|
67
|
+
//# sourceMappingURL=vote-suggestion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-suggestion.d.ts","sourceRoot":"","sources":["../../src/mutations/vote-suggestion.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtE,mFAAmF;AACnF,eAAO,MAAM,eAAe,oBAAoB,CAAC;AAEjD,8EAA8E;AAC9E,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;AAE5C,kFAAkF;AAClF,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,SAAS,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAStF;AAED,wHAAwH;AACxH,MAAM,WAAW,YAAY;IAC3B,0GAA0G;IAC1G,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;IACjL;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,KAAK;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CAChK;AAMD,eAAO,MAAM,MAAM,EAAE,YAAoH,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as z from "../schema/zod.js";
|
|
2
|
+
/** The name of the act that votes on a suggestion (Roadmap f-suggestion-votes). */
|
|
3
|
+
export const VOTE_SUGGESTION = "vote-suggestion";
|
|
4
|
+
/**
|
|
5
|
+
* "VOTE ON A SUGGESTION" (Roadmap f-suggestion-votes): what Accept and
|
|
6
|
+
* Decline do from a seat that may see a suggestion and may not make the
|
|
7
|
+
* change — a reader, a visitor by link — so the person is heard rather
|
|
8
|
+
* than refused. Its arguments are the suggestion's id and the vote: `for`,
|
|
9
|
+
* `against`, or `null` to withdraw one. One standing vote per person: a
|
|
10
|
+
* later one replaces it.
|
|
11
|
+
*
|
|
12
|
+
* Every store answers to it and no list offers it: it is not one of the
|
|
13
|
+
* app's acts, and the tray offers it as Accept and Decline. It goes over
|
|
14
|
+
* the wire like any call, and is permitted to whoever may see the
|
|
15
|
+
* suggestion. The store makes its op itself (`VOTING.op`, filled in by
|
|
16
|
+
* `@graview/core/tidying`): no primitives, the vote on the op, so it folds
|
|
17
|
+
* to nothing and a build before it reads it as a change that touched
|
|
18
|
+
* nothing.
|
|
19
|
+
*/
|
|
20
|
+
export function voteSuggestionMutation() {
|
|
21
|
+
return {
|
|
22
|
+
name: VOTE_SUGGESTION,
|
|
23
|
+
title: "Vote on a suggestion",
|
|
24
|
+
input: z.object({ suggestion: z.string(), vote: z.union([z.literal("for"), z.literal("against"), z.null()]) }),
|
|
25
|
+
apply() {
|
|
26
|
+
// The store makes the op (`VOTING.op`); nothing of the graph changes.
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/*
|
|
31
|
+
* One object for the store and `@graview/core/tidying`, found by a key
|
|
32
|
+
* every copy agrees on, as the seat view and publishing are: the module a
|
|
33
|
+
* page fetches to draw the tray imports nothing of what it loaded first.
|
|
34
|
+
*/
|
|
35
|
+
export const VOTING = (globalThis[Symbol.for("@graview/core:voting")] ??= {});
|
|
36
|
+
//# sourceMappingURL=vote-suggestion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-suggestion.js","sourceRoot":"","sources":["../../src/mutations/vote-suggestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,kBAAkB,CAAC;AAOtC,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAwBjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,sBAAsB;QAC7B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAU;QACvH,KAAK;YACH,sEAAsE;QACxE,CAAC;KAC0B,CAAC;AAChC,CAAC;AAeD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAiB,CAAE,UAAuD,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC"}
|
package/dist/navigate.d.ts
CHANGED
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
* section: "Shipping soon" })` arrives at a path narrowed and to a section
|
|
6
6
|
* (`narrowedPath`, `/features?filter=stage%3Abuilding#shipping-soon`), the
|
|
7
7
|
* filter in the words a list's arranging line writes and the section as
|
|
8
|
-
* the address says it (`sectionSlug`).
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* the address says it (`sectionSlug`). What a view may name at all —
|
|
9
|
+
* `overview`, `home`, a kind's list, a titled place — is one vocabulary
|
|
10
|
+
* (`placeNamesOf` from the declaration, `placeNamesFrom` from what a face
|
|
11
|
+
* holds; FR-235), so the headless check and the live host agree. Off the
|
|
12
|
+
* main entry: only the routed face's way of going and a worker view's
|
|
13
|
+
* host reach it, each fetched as it is drawn.
|
|
11
14
|
*/
|
|
12
15
|
export { narrowedPath, sectionSlug } from "./views/address.js";
|
|
16
|
+
export { placeNamesFrom, placeNamesOf, type PlaceName, type PlaceNameIs, type PlaceNamesOptions } from "./place-names.js";
|
|
13
17
|
//# sourceMappingURL=navigate.d.ts.map
|
package/dist/navigate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"navigate.d.ts","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/navigate.js
CHANGED
|
@@ -5,9 +5,13 @@
|
|
|
5
5
|
* section: "Shipping soon" })` arrives at a path narrowed and to a section
|
|
6
6
|
* (`narrowedPath`, `/features?filter=stage%3Abuilding#shipping-soon`), the
|
|
7
7
|
* filter in the words a list's arranging line writes and the section as
|
|
8
|
-
* the address says it (`sectionSlug`).
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* the address says it (`sectionSlug`). What a view may name at all —
|
|
9
|
+
* `overview`, `home`, a kind's list, a titled place — is one vocabulary
|
|
10
|
+
* (`placeNamesOf` from the declaration, `placeNamesFrom` from what a face
|
|
11
|
+
* holds; FR-235), so the headless check and the live host agree. Off the
|
|
12
|
+
* main entry: only the routed face's way of going and a worker view's
|
|
13
|
+
* host reach it, each fetched as it is drawn.
|
|
11
14
|
*/
|
|
12
15
|
export { narrowedPath, sectionSlug } from "./views/address.js";
|
|
16
|
+
export { placeNamesFrom, placeNamesOf } from "./place-names.js";
|
|
13
17
|
//# sourceMappingURL=navigate.js.map
|
package/dist/navigate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigate.js","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"navigate.js","sourceRoot":"","sources":["../src/navigate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,YAAY,EAA4D,MAAM,kBAAkB,CAAC"}
|
package/dist/ops/lineage.d.ts
CHANGED
|
@@ -68,6 +68,14 @@ export interface Lineage {
|
|
|
68
68
|
* At most 200, each 3–240 characters.
|
|
69
69
|
*/
|
|
70
70
|
readonly read?: readonly string[];
|
|
71
|
+
/**
|
|
72
|
+
* WHO VOTED FOR THE SUGGESTION THIS CHANGE MADE (Roadmap
|
|
73
|
+
* f-suggestion-votes): the ids of the people whose standing votes were
|
|
74
|
+
* for it when the app's own actor made it at the declaration's
|
|
75
|
+
* `autoAcceptAt`. At most 200, each 1–120 characters. A person's id may
|
|
76
|
+
* be a record's, which the op then names as it names any id.
|
|
77
|
+
*/
|
|
78
|
+
readonly voters?: readonly string[];
|
|
71
79
|
}
|
|
72
80
|
/** The longest basis an op keeps: a reason, not a transcript. */
|
|
73
81
|
export declare const LINEAGE_BASIS_LIMIT = 500;
|
|
@@ -77,6 +85,8 @@ export declare const LINEAGE_MODEL_LIMIT = 120;
|
|
|
77
85
|
export declare const LINEAGE_EVIDENCE_LIMIT = 50;
|
|
78
86
|
/** The most fields a lineage says its basis read. */
|
|
79
87
|
export declare const LINEAGE_READ_LIMIT = 200;
|
|
88
|
+
/** The most people a lineage names as having voted for the suggestion it made. */
|
|
89
|
+
export declare const LINEAGE_VOTERS_LIMIT = 200;
|
|
80
90
|
/** The longest a whole lineage is, written out as JSON: what bounds the keys a later build adds. */
|
|
81
91
|
export declare const LINEAGE_LIMIT = 4000;
|
|
82
92
|
/**
|
|
@@ -85,7 +95,7 @@ export declare const LINEAGE_LIMIT = 4000;
|
|
|
85
95
|
* GraphError: a basis of 1–500 characters, a confidence from 0 to 1, a
|
|
86
96
|
* model, suggestion, interaction, actor and run of 1–120 characters,
|
|
87
97
|
* evidence of at most 50 such ids, the fields its basis read as at most
|
|
88
|
-
* 200 `<id>#<field>`, no key that would reach a prototype, and
|
|
98
|
+
* 200 `<id>#<field>`, voters of at most 200 such ids, no key that would reach a prototype, and
|
|
89
99
|
* the whole at most 4000 characters written out. Asked before anything is
|
|
90
100
|
* kept; nothing said is no lineage.
|
|
91
101
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,kFAAkF;AAClF,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,oGAAoG;AACpG,eAAO,MAAM,aAAa,OAAO,CAAC;AAiBlC;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAsB7D"}
|
package/dist/ops/lineage.js
CHANGED
|
@@ -7,6 +7,8 @@ export const LINEAGE_MODEL_LIMIT = 120;
|
|
|
7
7
|
export const LINEAGE_EVIDENCE_LIMIT = 50;
|
|
8
8
|
/** The most fields a lineage says its basis read. */
|
|
9
9
|
export const LINEAGE_READ_LIMIT = 200;
|
|
10
|
+
/** The most people a lineage names as having voted for the suggestion it made. */
|
|
11
|
+
export const LINEAGE_VOTERS_LIMIT = 200;
|
|
10
12
|
/** The longest a whole lineage is, written out as JSON: what bounds the keys a later build adds. */
|
|
11
13
|
export const LINEAGE_LIMIT = 4000;
|
|
12
14
|
/** The keys that name something in 1–120 characters. */
|
|
@@ -26,7 +28,7 @@ const asJson = (value) => {
|
|
|
26
28
|
* GraphError: a basis of 1–500 characters, a confidence from 0 to 1, a
|
|
27
29
|
* model, suggestion, interaction, actor and run of 1–120 characters,
|
|
28
30
|
* evidence of at most 50 such ids, the fields its basis read as at most
|
|
29
|
-
* 200 `<id>#<field>`, no key that would reach a prototype, and
|
|
31
|
+
* 200 `<id>#<field>`, voters of at most 200 such ids, no key that would reach a prototype, and
|
|
30
32
|
* the whole at most 4000 characters written out. Asked before anything is
|
|
31
33
|
* kept; nothing said is no lineage.
|
|
32
34
|
*/
|
|
@@ -52,13 +54,15 @@ export function lineageOf(value) {
|
|
|
52
54
|
fits &&= Array.isArray(said) && said.length <= LINEAGE_EVIDENCE_LIMIT && said.every(isName);
|
|
53
55
|
else if (key === "read")
|
|
54
56
|
fits &&= Array.isArray(said) && said.length <= LINEAGE_READ_LIMIT && said.every(isFieldRead);
|
|
57
|
+
else if (key === "voters")
|
|
58
|
+
fits &&= Array.isArray(said) && said.length <= LINEAGE_VOTERS_LIMIT && said.every(isName);
|
|
55
59
|
else
|
|
56
60
|
fits &&= key !== "__proto__" && key !== "constructor" && key !== "prototype" && (said = asJson(said)) !== undefined;
|
|
57
61
|
if (fits)
|
|
58
62
|
kept[key] = said;
|
|
59
63
|
}
|
|
60
64
|
if (!fits)
|
|
61
|
-
throw new GraphError("A lineage is { basis: 1 to 500 characters, confidence?: 0 to 1, model?, suggestion?, interaction?, actor?, run?: 1 to 120 characters, evidence?: up to 50 ids, read?: up to 200 <id>#<field
|
|
65
|
+
throw new GraphError("A lineage is { basis: 1 to 500 characters, confidence?: 0 to 1, model?, suggestion?, interaction?, actor?, run?: 1 to 120 characters, evidence?: up to 50 ids, read?: up to 200 <id>#<field>, voters?: up to 200 ids }");
|
|
62
66
|
if (JSON.stringify(kept).length > LINEAGE_LIMIT)
|
|
63
67
|
throw new GraphError(`A lineage is at most ${LINEAGE_LIMIT} characters written out.`);
|
|
64
68
|
return kept;
|
package/dist/ops/lineage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../src/ops/lineage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { MutationCall } from "../mutations/types.js";
|
|
2
|
+
import type { Vote } from "../mutations/vote-suggestion.js";
|
|
3
|
+
import type { Principal } from "../permissions/types.js";
|
|
2
4
|
import type { Lineage } from "./lineage.js";
|
|
3
5
|
import type { Author, Operation } from "./types.js";
|
|
4
6
|
/** A suggestion that waits: what it proposes, who proposed it, on what basis, and how sure. */
|
|
@@ -16,6 +18,20 @@ export interface Suggestion {
|
|
|
16
18
|
readonly expiresAt?: string;
|
|
17
19
|
/** The records its calls name, so a tray can point at them. */
|
|
18
20
|
readonly about: readonly string[];
|
|
21
|
+
/**
|
|
22
|
+
* THE VOTES ON IT (Roadmap f-suggestion-votes): how many people's
|
|
23
|
+
* standing vote is for it and against it, and the reader's own when they
|
|
24
|
+
* cast one (`mine`) — what a tray shows beside Accept to whoever may
|
|
25
|
+
* decide, says back to a voter, and a list sorts on.
|
|
26
|
+
*/
|
|
27
|
+
readonly tally: SuggestionTally;
|
|
28
|
+
}
|
|
29
|
+
/** The standing votes on a suggestion, counted (Roadmap f-suggestion-votes). */
|
|
30
|
+
export interface SuggestionTally {
|
|
31
|
+
readonly for: number;
|
|
32
|
+
readonly against: number;
|
|
33
|
+
/** The reader's own standing vote, when one was named to `suggestions` and they cast one. */
|
|
34
|
+
readonly mine?: "for" | "against";
|
|
19
35
|
}
|
|
20
36
|
/**
|
|
21
37
|
* "NOT NOW": ONE PERSON PUT A SUGGESTION OUT OF SIGHT, without saying no
|
|
@@ -55,7 +71,21 @@ export interface WaitingOptions {
|
|
|
55
71
|
readonly now?: string;
|
|
56
72
|
/** What the person reading said "not now" to; those are not among what waits for them. */
|
|
57
73
|
readonly dismissed?: readonly Dismissal[] | undefined;
|
|
74
|
+
/** Who is reading, so each suggestion's `tally.mine` is their standing vote (Roadmap f-suggestion-votes). */
|
|
75
|
+
readonly voter?: Principal | undefined;
|
|
58
76
|
}
|
|
77
|
+
/** Who a vote is counted as: the person, for an agent acting for one; a seat with no id, by its session. */
|
|
78
|
+
export declare const voterId: (author: Author) => string | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* THE STANDING VOTES IN A LOG, by suggestion then by voter (Roadmap
|
|
81
|
+
* f-suggestion-votes): each person's latest vote that still stands — a
|
|
82
|
+
* later vote replaces an earlier one, `null` withdraws it, an undone vote
|
|
83
|
+
* never counted, and a vote withheld from the reader is not theirs to
|
|
84
|
+
* count. One pass over the ops, asked once per reading.
|
|
85
|
+
*/
|
|
86
|
+
export declare function votesIn(ops: readonly Operation[]): ReadonlyMap<string, ReadonlyMap<string, Exclude<Vote, null>>>;
|
|
87
|
+
/** The votes on one suggestion, counted, with the reader's own when they are named. */
|
|
88
|
+
export declare function tallyOf(votes: ReadonlyMap<string, Exclude<Vote, null>> | undefined, voter?: Principal): SuggestionTally;
|
|
59
89
|
/** Whether a suggestion's op has stopped waiting by its own expiry. */
|
|
60
90
|
export declare const expired: (op: Pick<Operation, "expiresAt">, now: string) => boolean;
|
|
61
91
|
/** Whether one person put this suggestion out of sight, as of now. */
|
|
@@ -66,7 +96,9 @@ export declare const isDismissed: (dismissed: readonly Dismissal[] | undefined,
|
|
|
66
96
|
* that was taken back later), a live undo declined it, or it expired. A
|
|
67
97
|
* withheld op is no suggestion for the seat it was withheld from. `has`
|
|
68
98
|
* keeps, of the ids its calls name, the records (`about`). One the reader
|
|
69
|
-
* said "not now" to (`options.dismissed`) is left out for them.
|
|
99
|
+
* said "not now" to (`options.dismissed`) is left out for them. Each
|
|
100
|
+
* carries the standing votes on it (`tally`), the reader's own among them
|
|
101
|
+
* when `options.voter` names them.
|
|
70
102
|
*/
|
|
71
103
|
export declare function suggestionsIn(ops: readonly Operation[], has?: (id: string) => boolean, options?: WaitingOptions): Suggestion[];
|
|
72
104
|
//# sourceMappingURL=suggestions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AASpD,+FAA+F;AAC/F,MAAM,WAAW,UAAU;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,IAAI,IAAI,SAAS,SAAS,EAAE,CAAC;IAC7B,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,sEAAsE;IACtE,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"suggestions.d.ts","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AASpD,+FAA+F;AAC/F,MAAM,WAAW,UAAU;IACzB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,qCAAqC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,IAAI,IAAI,SAAS,SAAS,EAAE,CAAC;IAC7B,qEAAqE;IACrE,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,sEAAsE;IACtE,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,2GAA2G;IAC3G,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;IACtD,6GAA6G;IAC7G,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC;AAED,4GAA4G;AAC5G,eAAO,MAAM,OAAO,GAAI,QAAQ,MAAM,KAAG,MAAM,GAAG,SAA+D,CAAC;AAElH;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAahH;AAED,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,eAAe,CAOvH;AAED,uEAAuE;AACvE,eAAO,MAAM,OAAO,GAAI,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,KAAK,MAAM,KAAG,OAAoF,CAAC;AAE7J,sEAAsE;AACtE,eAAO,MAAM,WAAW,GAAI,WAAW,SAAS,SAAS,EAAE,GAAG,SAAS,EAAE,IAAI,MAAM,EAAE,KAAK,MAAM,KAAG,OAC6B,CAAC;AAEjI;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,GAAG,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAoB,EAAE,OAAO,GAAE,cAAmB,GAAG,UAAU,EAAE,CAa9I"}
|
package/dist/ops/suggestions.js
CHANGED
|
@@ -1,4 +1,43 @@
|
|
|
1
|
+
import { actingAs } from "../permissions/policy.js";
|
|
1
2
|
import { undoneIn } from "./log.js";
|
|
3
|
+
/** Who a vote is counted as: the person, for an agent acting for one; a seat with no id, by its session. */
|
|
4
|
+
export const voterId = (author) => actingAs(author).id ?? author.session;
|
|
5
|
+
/**
|
|
6
|
+
* THE STANDING VOTES IN A LOG, by suggestion then by voter (Roadmap
|
|
7
|
+
* f-suggestion-votes): each person's latest vote that still stands — a
|
|
8
|
+
* later vote replaces an earlier one, `null` withdraws it, an undone vote
|
|
9
|
+
* never counted, and a vote withheld from the reader is not theirs to
|
|
10
|
+
* count. One pass over the ops, asked once per reading.
|
|
11
|
+
*/
|
|
12
|
+
export function votesIn(ops) {
|
|
13
|
+
const undone = undoneIn(ops);
|
|
14
|
+
const standing = new Map();
|
|
15
|
+
for (const op of ops) {
|
|
16
|
+
if (op.vote === undefined || op.withheld || undone.has(op.id))
|
|
17
|
+
continue;
|
|
18
|
+
const who = voterId(op.author);
|
|
19
|
+
if (who === undefined)
|
|
20
|
+
continue;
|
|
21
|
+
let votes = standing.get(op.vote.suggestion);
|
|
22
|
+
if (!votes)
|
|
23
|
+
standing.set(op.vote.suggestion, (votes = new Map()));
|
|
24
|
+
if (op.vote.vote === null)
|
|
25
|
+
votes.delete(who);
|
|
26
|
+
else
|
|
27
|
+
votes.set(who, op.vote.vote);
|
|
28
|
+
}
|
|
29
|
+
return standing;
|
|
30
|
+
}
|
|
31
|
+
/** The votes on one suggestion, counted, with the reader's own when they are named. */
|
|
32
|
+
export function tallyOf(votes, voter) {
|
|
33
|
+
let votedFor = 0;
|
|
34
|
+
let against = 0;
|
|
35
|
+
for (const vote of votes?.values() ?? [])
|
|
36
|
+
vote === "for" ? votedFor++ : against++;
|
|
37
|
+
const me = voter && voterId(voter);
|
|
38
|
+
const mine = me !== undefined ? votes?.get(me) : undefined;
|
|
39
|
+
return { for: votedFor, against, ...(mine !== undefined ? { mine } : {}) };
|
|
40
|
+
}
|
|
2
41
|
/** Whether a suggestion's op has stopped waiting by its own expiry. */
|
|
3
42
|
export const expired = (op, now) => op.expiresAt !== undefined && Date.parse(op.expiresAt) <= Date.parse(now);
|
|
4
43
|
/** Whether one person put this suggestion out of sight, as of now. */
|
|
@@ -9,19 +48,22 @@ export const isDismissed = (dismissed, id, now) => (dismissed ?? []).some((one)
|
|
|
9
48
|
* that was taken back later), a live undo declined it, or it expired. A
|
|
10
49
|
* withheld op is no suggestion for the seat it was withheld from. `has`
|
|
11
50
|
* keeps, of the ids its calls name, the records (`about`). One the reader
|
|
12
|
-
* said "not now" to (`options.dismissed`) is left out for them.
|
|
51
|
+
* said "not now" to (`options.dismissed`) is left out for them. Each
|
|
52
|
+
* carries the standing votes on it (`tally`), the reader's own among them
|
|
53
|
+
* when `options.voter` names them.
|
|
13
54
|
*/
|
|
14
55
|
export function suggestionsIn(ops, has = () => true, options = {}) {
|
|
15
56
|
const undone = undoneIn(ops);
|
|
16
57
|
const accepted = new Set(ops.map((op) => op.lineage?.suggestion));
|
|
17
58
|
const now = options.now ?? new Date().toISOString();
|
|
59
|
+
let votes;
|
|
18
60
|
return ops
|
|
19
61
|
.filter((op) => op.suggests && !op.withheld && !undone.has(op.id) && !accepted.has(op.id) && !expired(op, now) && !isDismissed(options.dismissed, op.id, now))
|
|
20
62
|
.map(({ id, batch, suggests, intent, author, lineage, at, expiresAt }) => {
|
|
21
63
|
const about = new Set();
|
|
22
64
|
// Every string its calls hold, kept where it is a record.
|
|
23
65
|
JSON.stringify(suggests.map((call) => call.args), (_, value) => (typeof value === "string" && has(value) && about.add(value), value));
|
|
24
|
-
return { id, batch, calls: suggests, intent, author, ...(lineage ? { lineage } : {}), at, expiresAt, about: [...about] };
|
|
66
|
+
return { id, batch, calls: suggests, intent, author, ...(lineage ? { lineage } : {}), at, expiresAt, about: [...about], tally: tallyOf((votes ??= votesIn(ops)).get(id), options.voter) };
|
|
25
67
|
});
|
|
26
68
|
}
|
|
27
69
|
//# sourceMappingURL=suggestions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../src/ops/suggestions.ts"],"names":[],"mappings":"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"}
|
package/dist/ops/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Primitive } from "../graph/primitives.js";
|
|
2
2
|
import type { MutationCall } from "../mutations/types.js";
|
|
3
3
|
import type { Lineage } from "./lineage.js";
|
|
4
|
+
import type { SuggestionVote } from "../mutations/vote-suggestion.js";
|
|
4
5
|
/**
|
|
5
6
|
* WHO CAN AUTHOR AN OP, AS THIS BUILD KNOWS THEM. The set is open: a kind
|
|
6
7
|
* may be added within a major, and a reader that meets one it does not know
|
|
@@ -182,6 +183,18 @@ export interface Operation {
|
|
|
182
183
|
* anew. Absent, it waits until a person answers it.
|
|
183
184
|
*/
|
|
184
185
|
readonly expiresAt?: string;
|
|
186
|
+
/**
|
|
187
|
+
* A VOTE ON A SUGGESTION (Roadmap f-suggestion-votes): set on the op of
|
|
188
|
+
* the built-in `vote-suggestion` act, which touches no record — what
|
|
189
|
+
* Accept and Decline keep for a seat that may see the suggestion and
|
|
190
|
+
* may not make its change. `{ suggestion, vote }`, the vote `for`,
|
|
191
|
+
* `against` or `null` (one withdrawn); one standing vote per person, the
|
|
192
|
+
* latest. Read into a suggestion's `tally` (`suggestions`,
|
|
193
|
+
* `@graview/core/tidying`). An op without it reads as before, and folds
|
|
194
|
+
* the same; a build before it reads this one as a change that touched
|
|
195
|
+
* nothing.
|
|
196
|
+
*/
|
|
197
|
+
readonly vote?: SuggestionVote;
|
|
185
198
|
/**
|
|
186
199
|
* HOW FAR READERS ARE SERVED, set by a publish (Roadmap
|
|
187
200
|
* f-publishing-lifecycle): in an `on-publish` app, the seats not
|
package/dist/ops/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,0DAA2D,CAAC;AACrF,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAGvD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,UAAU,CAEtF;AAED,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,MAAM,EAAE,GAAG,QAAQ,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;IAC1C;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B"}
|
package/dist/ops/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ops/types.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAErF,MAAM,kBAAkB,GAAyB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAA6C;IACxE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAE,MAAO,CAAC,IAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { GraviewApp } from "./app.js";
|
|
2
|
+
import type { AnySchema } from "./schema/schema.js";
|
|
3
|
+
import type { HostView, PagesArrangement, Place } from "./views/types.js";
|
|
4
|
+
/** What one name a view may use is: the Scene, the home, a kind's list, or a titled place. */
|
|
5
|
+
export type PlaceNameIs = "overview" | "home" | "list" | "place";
|
|
6
|
+
/** One name a view may send somebody to: its slug, what a reader knows it as, the kind it is over, and what it is. */
|
|
7
|
+
export interface PlaceName {
|
|
8
|
+
/** The word a link or `navigate` uses: `overview`, `home`, a kind's plural slug, a place's slug. */
|
|
9
|
+
readonly as: string;
|
|
10
|
+
/** What a reader knows it as: "Scene", "Home", "Features", "The board". */
|
|
11
|
+
readonly title: string;
|
|
12
|
+
/** The kind it is over; null for the Scene and the home. */
|
|
13
|
+
readonly kind: string | null;
|
|
14
|
+
readonly is: PlaceNameIs;
|
|
15
|
+
/** Kept off the lists (`pages.hide`, a hidden lens); still a name a view may use. */
|
|
16
|
+
readonly hidden?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface PlaceNamesOptions {
|
|
19
|
+
/** The views the host keeps, by their manifests: each titled view of many is a place a view may name. */
|
|
20
|
+
readonly views?: readonly HostView[];
|
|
21
|
+
/** The kinds the viewer is kept from: no list of theirs, and no place over them, is a name for this viewer. */
|
|
22
|
+
readonly kept?: ReadonlySet<string>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* THE NAMES A VIEW MAY USE, FROM THE DECLARATION: what the headless check
|
|
26
|
+
* (`@graview/guest/headless`) and a host that describes a place hold a
|
|
27
|
+
* link to. The same list `placeNamesFrom` builds from what a face holds.
|
|
28
|
+
*/
|
|
29
|
+
export declare function placeNamesOf<S extends AnySchema>(app: GraviewApp<S>, options?: PlaceNamesOptions): readonly PlaceName[];
|
|
30
|
+
/**
|
|
31
|
+
* THE SAME NAMES FROM WHAT A FACE HOLDS: the schema, the places its view
|
|
32
|
+
* registry names (each declared lens, each registered picture, each titled
|
|
33
|
+
* view the host keeps), and the arrangement — what the live host of a
|
|
34
|
+
* worker view judges a link by (`@graview/guest`'s `createLinks`), and what
|
|
35
|
+
* the routed face and the Scene go to. One builder with `placeNamesOf`, so
|
|
36
|
+
* the check and the page can never disagree about which names exist.
|
|
37
|
+
*/
|
|
38
|
+
export declare function placeNamesFrom(schema: AnySchema, places: readonly Place[], options?: {
|
|
39
|
+
readonly pages?: PagesArrangement;
|
|
40
|
+
readonly kept?: ReadonlySet<string>;
|
|
41
|
+
}): readonly PlaceName[];
|
|
42
|
+
//# sourceMappingURL=place-names.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place-names.d.ts","sourceRoot":"","sources":["../src/place-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAG3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsB1E,8FAA8F;AAC9F,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,sHAAsH;AACtH,MAAM,WAAW,SAAS;IACxB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;IACzB,qFAAqF;IACrF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAsBD,MAAM,WAAW,iBAAiB;IAChC,yGAAyG;IACzG,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,+GAA+G;IAC/G,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,iBAAsB,GAAG,SAAS,SAAS,EAAE,CAE3H;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,SAAS,SAAS,EAAE,CAE1L"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { placesFrom, placesOf } from "./app-places.js";
|
|
2
|
+
import { HOME_SLUG } from "./places.js";
|
|
3
|
+
const nameOf = (place) => ({
|
|
4
|
+
as: place.slug,
|
|
5
|
+
title: place.title,
|
|
6
|
+
kind: place.kind,
|
|
7
|
+
is: place.kind === null ? (place.slug === HOME_SLUG ? "home" : "overview") : place.address.startsWith("/places/") ? "place" : "list",
|
|
8
|
+
...(place.hidden ? { hidden: true } : {}),
|
|
9
|
+
});
|
|
10
|
+
/** Each name once, the first listed winning: a lens titled "Overview" does not take the Scene's word. */
|
|
11
|
+
function namesOf(listed, kept) {
|
|
12
|
+
const out = [];
|
|
13
|
+
for (const place of listed) {
|
|
14
|
+
if (place.kind !== null && kept.has(place.kind))
|
|
15
|
+
continue;
|
|
16
|
+
if (place.over?.some((kind) => kept.has(kind)))
|
|
17
|
+
continue;
|
|
18
|
+
if (out.some((one) => one.as === place.slug))
|
|
19
|
+
continue;
|
|
20
|
+
out.push(nameOf(place));
|
|
21
|
+
}
|
|
22
|
+
return out;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* THE NAMES A VIEW MAY USE, FROM THE DECLARATION: what the headless check
|
|
26
|
+
* (`@graview/guest/headless`) and a host that describes a place hold a
|
|
27
|
+
* link to. The same list `placeNamesFrom` builds from what a face holds.
|
|
28
|
+
*/
|
|
29
|
+
export function placeNamesOf(app, options = {}) {
|
|
30
|
+
return namesOf(placesOf(app, options.views ? { views: options.views } : {}), options.kept ?? new Set());
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* THE SAME NAMES FROM WHAT A FACE HOLDS: the schema, the places its view
|
|
34
|
+
* registry names (each declared lens, each registered picture, each titled
|
|
35
|
+
* view the host keeps), and the arrangement — what the live host of a
|
|
36
|
+
* worker view judges a link by (`@graview/guest`'s `createLinks`), and what
|
|
37
|
+
* the routed face and the Scene go to. One builder with `placeNamesOf`, so
|
|
38
|
+
* the check and the page can never disagree about which names exist.
|
|
39
|
+
*/
|
|
40
|
+
export function placeNamesFrom(schema, places, options = {}) {
|
|
41
|
+
return namesOf(placesFrom(schema, places, options.pages ? { pages: options.pages } : {}), options.kept ?? new Set());
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=place-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"place-names.js","sourceRoot":"","sources":["../src/place-names.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAwCxC,MAAM,MAAM,GAAG,CAAC,KAAe,EAAa,EAAE,CAAC,CAAC;IAC9C,EAAE,EAAE,KAAK,CAAC,IAAI;IACd,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,EAAE,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;IACpI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;CAC1C,CAAC,CAAC;AAEH,yGAAyG;AACzG,SAAS,OAAO,CAAC,MAA2B,EAAE,IAAyB;IACrE,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1D,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QACzD,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC;YAAE,SAAS;QACvD,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAsB,GAAkB,EAAE,UAA6B,EAAE;IACnG,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,MAAiB,EAAE,MAAwB,EAAE,UAAsF,EAAE;IAClK,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;AACvH,CAAC"}
|
package/dist/places.d.ts
CHANGED
|
@@ -178,6 +178,8 @@ export declare function primaryOf(pages: PagesArrangement | undefined, schema: A
|
|
|
178
178
|
readonly kinds: ReadonlySet<string>;
|
|
179
179
|
readonly places: ReadonlySet<string>;
|
|
180
180
|
} | undefined;
|
|
181
|
+
/** The home's address word: what a link or a view's navigate names the app's front page by (FR-235). */
|
|
182
|
+
export declare const HOME_SLUG = "home";
|
|
181
183
|
/** The scene's address word (FR-132), whatever the declaration calls the scene. */
|
|
182
184
|
export declare const OVERVIEW_SLUG = "overview";
|
|
183
185
|
/** The scene's address on the routed face (FR-132); its stop rides on it as the fragment. */
|
package/dist/places.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}
|
package/dist/places.js
CHANGED
|
@@ -395,6 +395,8 @@ export function primaryOf(pages, schema, places) {
|
|
|
395
395
|
places: new Set(places.filter((place) => words.has(place.as) || words.has(placeSlug(place.title)) || (place.name !== undefined && pages.primary.includes(VIEW_REFERENCE + place.name))).map((place) => `${place.kind}|${place.as}`)),
|
|
396
396
|
};
|
|
397
397
|
}
|
|
398
|
+
/** The home's address word: what a link or a view's navigate names the app's front page by (FR-235). */
|
|
399
|
+
export const HOME_SLUG = "home";
|
|
398
400
|
/** The scene's address word (FR-132), whatever the declaration calls the scene. */
|
|
399
401
|
export const OVERVIEW_SLUG = "overview";
|
|
400
402
|
/** The scene's address on the routed face (FR-132); its stop rides on it as the fragment. */
|