ident
All repositories: gitoria
1.4 KB
// lib/invites-helpers.hl — what lib/invites.hl looks up: the text and number checks of the app's call, the// list of identities that accepted, the message of a state. No table access. Statics only.import { hasControl } from './util.hl'static maxText = 60static isWhole = (n) => { return hlTypeName(n) == 'Number' && !('' + n).includes('.') && !('' + n).includes('e') }static checkText = (v, name) => {if (v == null || hlTypeName(v) != 'String') { return { error = 'field ' + name + ' must be a string' } }let t = v.trim()if (t == '') { return { error = 'field ' + name + ' is empty' } }if (t.length > maxText) { return { error = 'field ' + name + ' is longer than ' + maxText + ' characters' } }if (hasControl(t)) { return { error = 'field ' + name + ' contains a control character' } }return { text = t }}// `acceptedBy` is 'a b c': the identities' short ids that accepted it, space separatedstatic acceptedList = (rec) => { return rec.acceptedBy == null || rec.acceptedBy == '' ? [] : rec.acceptedBy.split(' ') }static usedCount = (rec) => { return acceptedList(rec).length }// the message of a state that cannot be acceptedstatic problemOf = (state) => {if (state == 'used') { return 'This invitation was already used.' }if (state == 'expired') { return 'This invitation has expired. Ask whoever invited you for a new one.' }if (state == 'revoked') { return 'This invitation was withdrawn. Ask whoever invited you for a new one.' }return ''}
Branches
- mainmain branch
Latest commits
- d2e7f91bident mission 009 (2/4): one lib file per topic (login, accounts, identities, apps, invites, selector, notify + helpers, util), function routes as thin wrappers in lib/api.hl, project.hl = the map; same outputmre
- 91017164ident mission 009 (1/4): file moves — the root .hl files into lib/ (api.hl → lib/api-helpers.hl), styles.hl → components/styles.hl; imports adjusted, no other changemre
- f8bdcbc2ident: Hybriel master 06617221 (plugin allocators 3a781359 + 413f60e4, mpackdb 2cb7ae5e, http1 773de63e); all gates greenmre
- ff78726cident: Hybriel master 190aa11d (fc838894 GC correctness, #127, #126 closure scopes); gates all greenmre
- a3a7d21aident: Hybriel master 8efba065 (#126 GC by bytes, #48 lambda params copy); session-writing lambdas take &sessionmre
- 98226b41antcolony#40: mission references point to the moved missionsmre
- ff805b9aantcolony#40: history (LOG.md), worker briefs (missions/) and reports moved here from antcolony, numbered per project; old numbers in antcolony docs/mission-map.mdmre
- 51a7bcdfident: Hybriel master 73267707 (#122); /code uses the new page() signature; pending address passed as parameter; once-checksmre
- 836f644fident#24: installable app (manifest, service worker, data-free offline /start), own iconmre
- 8bebbbf2deploy.sh: back up live storage/.sessions/.env before every deploy (newest 5 kept)mre
- cc063ea2deploy.sh: never send .git or .gitignore to Byrodinmre
- 81b15b7bState of 2026-09-27, before the move to gitoriamre