source: Klonkt/src/services/guardianship/index.js@ f3a2556

main
Last change on this file since f3a2556 was f3a2556, checked in by roboburr <roboburr@…>, 5 weeks ago

De apps kunnen nu zien wat er voor een ward gated is (shaer-ahy.1)

Bart: iOS en Android op hetzelfde plan als de PWA. Dit is het blokkerende stuk --
zonder dit kan geen app een poort tonen.

wardsCollection gaf {id, handle, since}. Een app kon een ward dus wel TONEN maar
niets over hem zeggen, en dat is precies de helft van het antwoord op "wat mag
dit kind". Er zit nu shaer:gates bij: dezelfde rijen als het PWA-paneel, met
soort, drempel, lopend voorstel en omkeerbaarheid.

UIT DEZELFDE FUNCTIE, en dat is de kern. wardGates stond in routes/guardian.js
en daar kon alleen de PWA erbij. Een tweede berekening ernaast zou vroeg of laat
een ander antwoord geven op dezelfde vraag -- geen schoonheidsfoutje, maar twee
guardians die een verschillend beeld van hetzelfde kind krijgen. Verplaatst naar
queues.js; beide schermen lezen er nu uit, en een toets vergelijkt de twee
uitkomsten letterlijk met deepEqual.

Suite 688/688; zonder de nieuwe regel vallen er twee om.

  • Property mode set to 100644
File size: 2.2 KB
Line 
1/**
2 * Guardianship (FEP-633c "Guardians") — the module.
3 *
4 * Klonkt's kid-safety feature as one cohesive unit:
5 * - context.js: the shaer JSON-LD namespace + Relationship vocabulary
6 * - offers.js: the multi-party handshake state (a port of the Shaer daemon)
7 * - relations.js: the COMMITTED ward ↔ guardian relations + actor props
8 * - handshake.js: the adoption Offer/Accept/Reject over C2S and S2S
9 * - queues.js: the owner-only dashboard collections (offers/follows/wards)
10 * - notes.js: the shaer:helpRequest flag on direct notes
11 * - delivery.js: the direct-note leg a ward's call-for-help rides
12 *
13 * The shared blocklist (Shaer's "in Orbit") lives NEXT TO this module in
14 * BlocklistService. ActivityPubService wires the AP helpers in once and
15 * delegates; nothing here imports ActivityPubService back.
16 */
17export { SHAER_CONTEXT, GUARDIAN_RELATIONSHIP, GUARDIAN_RELATIONSHIP_COMPACT, isGuardianRelationship } from './context.js';
18export { helpRequestProps, isHelpRequest, waveProps, isWave, awayProps, hasGuardiansProps, objectHasGuardians, externalEmbedsAllowed, externalPlaybackAllowed, wardGateAllowed } from './notes.js';
19export { wireDelivery, c2sVisibility, deliverDirectNote } from './delivery.js';
20export { wireHandshake, handleOutbox as handleGuardianshipOutbox, handleInbox as handleGuardianshipInbox, parseRelationship, parseUndoRelationship, endGuardianship } from './handshake.js';
21export { offersCollection, followsCollection, outgoingFollowsCollection, wardsCollection, guardiansCollection } from './queues.js';
22export * as availability from './availability.js';
23export { wireAvailability } from './availability.js';
24export * as follows from './follows.js';
25export * as outgoing from './outgoing.js';
26export { listForParty as listOffersForParty, getOffer, findOfferAnywhere } from './offers.js';
27export {
28 listGuardians, listWards, isGuardian, getRelation, removeRelation,
29 actorProps as guardianshipActorProps,
30} from './relations.js';
31
32// §5.6 gated settings (decided by the guardians, enforced by the ward's server)
33export * as gated from './gated.js';
34export * as queues from './queues.js';
35// 5.2.1: wie er op een hulpvraag af is en wanneer hij is afgesloten (shaer-lgo)
36export * as help from './help.js';
Note: See TracBrowser for help on using the repository browser.