@xnetjs/data 0.0.2 → 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/README.md +112 -0
- package/dist/account-MWNCH4GJ.js +12 -0
- package/dist/account-ledger-R2GAFJL6.js +38 -0
- package/dist/auth/index.d.ts +420 -0
- package/dist/auth/index.js +102 -0
- package/dist/budget-NN7P35XP.js +12 -0
- package/dist/canvas-6WYBNH53.js +10 -0
- package/dist/channel-AT3LQF4A.js +12 -0
- package/dist/chat-message-DSVO72B3.js +10 -0
- package/dist/chunk-2ZNJWIQG.js +84 -0
- package/dist/chunk-3J3HILXO.js +46 -0
- package/dist/chunk-3RUDVTMH.js +5543 -0
- package/dist/chunk-4EYKGTSQ.js +49 -0
- package/dist/chunk-53F4PRNC.js +32 -0
- package/dist/chunk-5EXHNXPL.js +48 -0
- package/dist/{chunk-BQBPA5HS.js → chunk-5HC5NO57.js} +16 -2
- package/dist/chunk-6KLGA6IR.js +47 -0
- package/dist/chunk-6OMG4I7M.js +41 -0
- package/dist/chunk-7PDRDSFH.js +69 -0
- package/dist/chunk-BQLQSWKZ.js +232 -0
- package/dist/chunk-BY5O6LNC.js +380 -0
- package/dist/chunk-DCTRX6II.js +40 -0
- package/dist/{chunk-VYR5GPJP.js → chunk-DWEXKD6E.js} +9 -3
- package/dist/chunk-EBNMV2VO.js +896 -0
- package/dist/chunk-FVEACSKE.js +102 -0
- package/dist/chunk-GU6THOAB.js +45 -0
- package/dist/chunk-H4GA4BBK.js +75 -0
- package/dist/chunk-IJ44LR7N.js +76 -0
- package/dist/chunk-J4ANIXIV.js +402 -0
- package/dist/chunk-JDFNMFOZ.js +45 -0
- package/dist/chunk-K7DOZWWT.js +1811 -0
- package/dist/chunk-KQAT4XBL.js +49 -0
- package/dist/chunk-KQUALW4O.js +183 -0
- package/dist/chunk-LYSWLCOI.js +47 -0
- package/dist/chunk-MBTUO3ZL.js +65 -0
- package/dist/chunk-NI4FHG2K.js +52 -0
- package/dist/chunk-OCMSAKWV.js +78 -0
- package/dist/chunk-OGJCRNGE.js +57 -0
- package/dist/chunk-OPPHF3TF.js +143 -0
- package/dist/{chunk-IDMBCRUC.js → chunk-OSAWNZVM.js} +1 -1
- package/dist/chunk-PMUQACPY.js +33 -0
- package/dist/chunk-PNESGUH5.js +63 -0
- package/dist/chunk-Q3IEGH4B.js +51 -0
- package/dist/chunk-QJW5LDP4.js +52 -0
- package/dist/chunk-QWFTRZQT.js +142 -0
- package/dist/{chunk-SZC345Z2.js → chunk-RL64OJJ5.js} +1025 -1110
- package/dist/chunk-S5RP5RKY.js +416 -0
- package/dist/chunk-S6U6TCMN.js +722 -0
- package/dist/chunk-SVNGSZZA.js +69 -0
- package/dist/chunk-T5AZAOG5.js +54 -0
- package/dist/chunk-TCTZW4A6.js +42 -0
- package/dist/chunk-U64CW73O.js +109 -0
- package/dist/chunk-UDWKWTAX.js +6526 -0
- package/dist/chunk-UQM3G5A2.js +148 -0
- package/dist/chunk-VQ7JHB67.js +57 -0
- package/dist/chunk-W7EBL7ZU.js +73 -0
- package/dist/chunk-WEPK7SZF.js +65 -0
- package/dist/chunk-XHEA5UER.js +75 -0
- package/dist/chunk-XMSKJ5PV.js +66 -0
- package/dist/chunk-XROI44ZP.js +64 -0
- package/dist/chunk-Y3S5SRVM.js +45 -0
- package/dist/chunk-YEFKQYKA.js +43 -0
- package/dist/chunk-YSUIXD2Y.js +105 -0
- package/dist/chunk-ZCOFZY5M.js +70 -0
- package/dist/chunk-ZLU4Y3O2.js +50 -0
- package/dist/chunk-ZPZ7XDA6.js +54 -0
- package/dist/chunk-ZZ6TWKGS.js +40 -0
- package/dist/clone-C0Jhk2UN.d.ts +2205 -0
- package/dist/comment-QSWYAQVS.js +10 -0
- package/dist/crm-L5RYAAF3.js +68 -0
- package/dist/dashboard-JMKTTRA7.js +10 -0
- package/dist/database/index.d.ts +882 -0
- package/dist/database/index.js +523 -0
- package/dist/database-GIXSPZJW.js +10 -0
- package/dist/database-field-3EPAMZUR.js +10 -0
- package/dist/database-row-6Q6TRVE4.js +10 -0
- package/dist/database-select-option-BBBJFLLH.js +10 -0
- package/dist/database-view-5PLSOBI2.js +10 -0
- package/dist/experiment-DOVOZ34Y.js +10 -0
- package/dist/external-item-P2E5X7BZ.js +14 -0
- package/dist/external-reference-7BSFF6SA.js +8 -0
- package/dist/feed-2IXHHP6O.js +12 -0
- package/dist/feed-item-DPE6LN7I.js +12 -0
- package/dist/folder-6KM3KYD5.js +21 -0
- package/dist/game-5AK5XWBR.js +50 -0
- package/dist/grant-WTQSNT5A.js +8 -0
- package/dist/grant-expiration-cleaner-CY6BcmlR.d.ts +249 -0
- package/dist/import-batch-IXBJLQPJ.js +12 -0
- package/dist/inbox-state-E5NSVOGP.js +12 -0
- package/dist/index.d.ts +224 -4548
- package/dist/index.js +2252 -4754
- package/dist/map-RG5Y3CPC.js +10 -0
- package/dist/media-asset-QTCGLIZA.js +8 -0
- package/dist/memory-PNRTMBZO.js +12 -0
- package/dist/metric-65SVOX5C.js +10 -0
- package/dist/milestone-XEO6ZGDG.js +12 -0
- package/dist/moderation-FFHETMRB.js +30 -0
- package/dist/observation-2Y3QKUXM.js +10 -0
- package/dist/page-2V27JGKJ.js +10 -0
- package/dist/posting-GBOSZCMZ.js +12 -0
- package/dist/profile-BLLDWIDK.js +8 -0
- package/dist/project-CQL5LN26.js +10 -0
- package/dist/query-ast-C3m6kZYv.d.ts +226 -0
- package/dist/reaction-T2DTJBBV.js +10 -0
- package/dist/registry-DunPv__d.d.ts +99 -0
- package/dist/saved-view-4R2DBCL3.js +10 -0
- package/dist/schema/index.d.ts +6489 -0
- package/dist/schema/index.js +677 -0
- package/dist/schema-extension-LNRF2YRD.js +18 -0
- package/dist/space-IJU24PBH.js +42 -0
- package/dist/space-membership-DEUMM7NV.js +14 -0
- package/dist/store/index.d.ts +518 -0
- package/dist/store/index.js +135 -0
- package/dist/store-DtIDjk7c.d.ts +355 -0
- package/dist/sync/awareness.d.ts +69 -0
- package/dist/sync/awareness.js +20 -0
- package/dist/system-ILHCZOVO.js +38 -0
- package/dist/tag-SKCHM3U5.js +16 -0
- package/dist/task-7AOBP7WC.js +16 -0
- package/dist/task-view-NUGKELJP.js +10 -0
- package/dist/transaction-ZDSEGDIR.js +12 -0
- package/dist/transcription-PSCLDAGX.js +12 -0
- package/dist/types-S-BJAKyK.d.ts +1576 -0
- package/dist/updates.d.ts +44 -0
- package/dist/updates.js +16 -0
- package/dist/user-widget-RLY2N46A.js +8 -0
- package/dist/view-types-DSde-uT_.d.ts +316 -0
- package/package.json +32 -9
- package/dist/canvas-HSIKIQFK.js +0 -7
- package/dist/chunk-2L5ZUGG5.js +0 -53
- package/dist/chunk-4MTS5KAQ.js +0 -22
- package/dist/chunk-GZHARFKC.js +0 -25
- package/dist/chunk-WKIKJTI2.js +0 -45
- package/dist/comment-277JD7DV.js +0 -7
- package/dist/database-W3KEHLI3.js +0 -7
- package/dist/database-row-3O2QSNZN.js +0 -7
- package/dist/grant-QVZ454YC.js +0 -7
- package/dist/page-O4WTOIEO.js +0 -7
- package/dist/task-SEKAYJH7.js +0 -7
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import {
|
|
2
|
+
spaceCascadeAuthorization
|
|
3
|
+
} from "./chunk-OCMSAKWV.js";
|
|
4
|
+
import {
|
|
5
|
+
date,
|
|
6
|
+
defineSchema,
|
|
7
|
+
json,
|
|
8
|
+
relation,
|
|
9
|
+
select,
|
|
10
|
+
text
|
|
11
|
+
} from "./chunk-EBNMV2VO.js";
|
|
12
|
+
|
|
13
|
+
// src/schema/schemas/experiment.ts
|
|
14
|
+
var ExperimentSchema = defineSchema({
|
|
15
|
+
name: "Experiment",
|
|
16
|
+
namespace: "xnet://xnet.fyi/",
|
|
17
|
+
properties: {
|
|
18
|
+
/** Experiment title. */
|
|
19
|
+
title: text({ required: true, maxLength: 300 }),
|
|
20
|
+
/** Emoji or icon URL. */
|
|
21
|
+
icon: text({ maxLength: 500 }),
|
|
22
|
+
/**
|
|
23
|
+
* The null hypothesis — what you're trying to reject, stated up front so
|
|
24
|
+
* the verdict can be framed against it (e.g. "Magnesium has no effect on
|
|
25
|
+
* sleep latency").
|
|
26
|
+
*/
|
|
27
|
+
hypothesisNull: text({ maxLength: 1e3 }),
|
|
28
|
+
/** The alternative hypothesis — the effect you expect if the null is wrong. */
|
|
29
|
+
hypothesisAlt: text({ maxLength: 1e3 }),
|
|
30
|
+
/** Lifecycle status. */
|
|
31
|
+
status: select({
|
|
32
|
+
options: [
|
|
33
|
+
{ id: "design", name: "Design", color: "gray" },
|
|
34
|
+
{ id: "baseline", name: "Baseline", color: "blue" },
|
|
35
|
+
{ id: "intervention", name: "Intervention", color: "purple" },
|
|
36
|
+
{ id: "washout", name: "Washout", color: "yellow" },
|
|
37
|
+
{ id: "analysis", name: "Analysis", color: "orange" },
|
|
38
|
+
{ id: "concluded", name: "Concluded", color: "green" },
|
|
39
|
+
{ id: "abandoned", name: "Abandoned", color: "red" }
|
|
40
|
+
],
|
|
41
|
+
default: "design"
|
|
42
|
+
}),
|
|
43
|
+
/** Single-case experimental design (Kazdin). */
|
|
44
|
+
design: select({
|
|
45
|
+
options: [
|
|
46
|
+
{ id: "observational", name: "Observational" },
|
|
47
|
+
{ id: "AB", name: "AB (baseline \u2192 intervention)" },
|
|
48
|
+
{ id: "ABAB", name: "ABAB (reversal)" },
|
|
49
|
+
{ id: "multipleBaseline", name: "Multiple baseline" },
|
|
50
|
+
{ id: "crossover", name: "Crossover" },
|
|
51
|
+
{ id: "alternating", name: "Alternating treatments" }
|
|
52
|
+
],
|
|
53
|
+
default: "AB"
|
|
54
|
+
}),
|
|
55
|
+
/** Primary outcome — the one metric locked before the intervention starts. */
|
|
56
|
+
primaryMetric: relation({ target: "xnet://xnet.fyi/Metric@1.0.0" }),
|
|
57
|
+
/**
|
|
58
|
+
* Phase timeline: [{ label, start, end, isIntervention }]. Whole-value LWW
|
|
59
|
+
* json (like DatabaseView.filters); the phase a datapoint falls in is
|
|
60
|
+
* denormalized onto each Observation, so analysis never walks this list.
|
|
61
|
+
*/
|
|
62
|
+
phases: json({}),
|
|
63
|
+
/** Recorded outcome — empty until concluded. Never "proven". */
|
|
64
|
+
conclusion: select({
|
|
65
|
+
options: [
|
|
66
|
+
{ id: "rejectsNull", name: "Rejects the null", color: "green" },
|
|
67
|
+
{ id: "failsToRejectNull", name: "Fails to reject the null", color: "gray" },
|
|
68
|
+
{ id: "inconclusive", name: "Inconclusive", color: "yellow" }
|
|
69
|
+
]
|
|
70
|
+
}),
|
|
71
|
+
/** When the experiment began. */
|
|
72
|
+
startDate: date({}),
|
|
73
|
+
/** When the experiment ended. */
|
|
74
|
+
endDate: date({}),
|
|
75
|
+
/** Canonical home; empty = Unfiled (exploration 0169). */
|
|
76
|
+
folder: relation({ target: "xnet://xnet.fyi/Folder@1.0.0" }),
|
|
77
|
+
/** Order among folder siblings — fractional index. */
|
|
78
|
+
sortKey: text({ maxLength: 500 }),
|
|
79
|
+
/** Workspace-wide labels, referenced by id (exploration 0169). */
|
|
80
|
+
tags: relation({ target: "xnet://xnet.fyi/Tag@1.0.0", multiple: true }),
|
|
81
|
+
/** Canonical SECURITY home; empty = personal/private (exploration 0179). */
|
|
82
|
+
space: relation({ target: "xnet://xnet.fyi/Space@1.0.0" }),
|
|
83
|
+
/** Per-node visibility. Defaults to `private` (sensitive data, 0180). */
|
|
84
|
+
visibility: select({
|
|
85
|
+
options: [
|
|
86
|
+
{ id: "inherit", name: "Inherit", color: "gray" },
|
|
87
|
+
{ id: "private", name: "Private", color: "gray" },
|
|
88
|
+
{ id: "unlisted", name: "Unlisted", color: "yellow" },
|
|
89
|
+
{ id: "public", name: "Public", color: "green" }
|
|
90
|
+
],
|
|
91
|
+
default: "private"
|
|
92
|
+
})
|
|
93
|
+
},
|
|
94
|
+
document: "yjs",
|
|
95
|
+
// Collaborative protocol / journal / observations narrative
|
|
96
|
+
// Inherits access from its home Space (exploration 0181/0192).
|
|
97
|
+
authorization: spaceCascadeAuthorization()
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
export {
|
|
101
|
+
ExperimentSchema
|
|
102
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import {
|
|
2
|
+
date,
|
|
3
|
+
defineSchema,
|
|
4
|
+
number,
|
|
5
|
+
relation,
|
|
6
|
+
select,
|
|
7
|
+
text
|
|
8
|
+
} from "./chunk-EBNMV2VO.js";
|
|
9
|
+
import {
|
|
10
|
+
presets
|
|
11
|
+
} from "./chunk-RL64OJJ5.js";
|
|
12
|
+
|
|
13
|
+
// src/schema/schemas/memory.ts
|
|
14
|
+
var MEMORY_ITEM_SCHEMA_IRI = "xnet://xnet.fyi/MemoryItem@1.0.0";
|
|
15
|
+
var MEMORY_KINDS = [
|
|
16
|
+
{ id: "fact", name: "Fact", color: "blue" },
|
|
17
|
+
{ id: "preference", name: "Preference", color: "purple" },
|
|
18
|
+
{ id: "episode", name: "Episode", color: "green" }
|
|
19
|
+
];
|
|
20
|
+
var MemoryItemSchema = defineSchema({
|
|
21
|
+
name: "MemoryItem",
|
|
22
|
+
namespace: "xnet://xnet.fyi/",
|
|
23
|
+
properties: {
|
|
24
|
+
/** Fact / preference / episode. */
|
|
25
|
+
kind: select({ options: MEMORY_KINDS, default: "fact" }),
|
|
26
|
+
/** The remembered statement, in natural language. */
|
|
27
|
+
text: text({ required: true, maxLength: 4e3 }),
|
|
28
|
+
/** Ranking weight in [0, 1]. Higher = more important to surface. */
|
|
29
|
+
salience: number({ min: 0, max: 1 }),
|
|
30
|
+
/** When this memory was last used or confirmed (epoch ms). */
|
|
31
|
+
lastUsedAt: date(),
|
|
32
|
+
/** Decay factor in [0, 1] applied during consolidation. */
|
|
33
|
+
decay: number({ min: 0, max: 1 }),
|
|
34
|
+
/** The source nodes this memory was distilled from (auditable provenance). */
|
|
35
|
+
evidence: relation({ multiple: true })
|
|
36
|
+
},
|
|
37
|
+
document: void 0,
|
|
38
|
+
authorization: presets.private()
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export {
|
|
42
|
+
MEMORY_ITEM_SCHEMA_IRI,
|
|
43
|
+
MEMORY_KINDS,
|
|
44
|
+
MemoryItemSchema
|
|
45
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import {
|
|
2
|
+
spaceCascadeAuthorization
|
|
3
|
+
} from "./chunk-OCMSAKWV.js";
|
|
4
|
+
import {
|
|
5
|
+
defineSchema,
|
|
6
|
+
json,
|
|
7
|
+
relation,
|
|
8
|
+
select,
|
|
9
|
+
text
|
|
10
|
+
} from "./chunk-EBNMV2VO.js";
|
|
11
|
+
|
|
12
|
+
// src/schema/schemas/database-view.ts
|
|
13
|
+
var DatabaseViewSchema = defineSchema({
|
|
14
|
+
name: "DatabaseView",
|
|
15
|
+
namespace: "xnet://xnet.fyi/",
|
|
16
|
+
properties: {
|
|
17
|
+
/** Parent database */
|
|
18
|
+
database: relation({
|
|
19
|
+
target: "xnet://xnet.fyi/Database@2.0.0",
|
|
20
|
+
required: true
|
|
21
|
+
}),
|
|
22
|
+
/** Display name */
|
|
23
|
+
name: text({ required: true, maxLength: 200 }),
|
|
24
|
+
/** View type */
|
|
25
|
+
type: select({
|
|
26
|
+
options: [
|
|
27
|
+
{ id: "table", name: "Table" },
|
|
28
|
+
{ id: "board", name: "Board" },
|
|
29
|
+
{ id: "list", name: "List" },
|
|
30
|
+
{ id: "gallery", name: "Gallery" },
|
|
31
|
+
{ id: "calendar", name: "Calendar" },
|
|
32
|
+
{ id: "timeline", name: "Timeline" }
|
|
33
|
+
],
|
|
34
|
+
default: "table"
|
|
35
|
+
}),
|
|
36
|
+
/** Filter tree (FilterGroup) — whole-tree LWW */
|
|
37
|
+
filters: json({}),
|
|
38
|
+
/** Sort list (SortConfig[]) — whole-list LWW */
|
|
39
|
+
sorts: json({}),
|
|
40
|
+
/** Group-by field ID */
|
|
41
|
+
groupBy: text({ maxLength: 100 }),
|
|
42
|
+
/** Group sort direction ('asc' | 'desc') */
|
|
43
|
+
groupSort: text({ maxLength: 4 }),
|
|
44
|
+
/** Collapsed group keys */
|
|
45
|
+
collapsedGroups: json({}),
|
|
46
|
+
/** Per-view field order: fieldId -> fractional sortKey override */
|
|
47
|
+
fieldOrder: json({}),
|
|
48
|
+
/** Per-view field widths: fieldId -> pixels */
|
|
49
|
+
fieldWidths: json({}),
|
|
50
|
+
/** Per-view hidden field IDs */
|
|
51
|
+
hiddenFields: json({}),
|
|
52
|
+
/** Row-height density tier (RowHeight: short | medium | tall | extraTall) */
|
|
53
|
+
rowHeight: text({ maxLength: 12 }),
|
|
54
|
+
/** Per-column footer summary functions: fieldId -> SummaryFunction */
|
|
55
|
+
columnSummaries: json({}),
|
|
56
|
+
/** Fractional index for view tab ordering */
|
|
57
|
+
sortKey: text({ required: true }),
|
|
58
|
+
// Gallery/Board specific
|
|
59
|
+
/** Cover image field ID */
|
|
60
|
+
coverField: text({ maxLength: 100 }),
|
|
61
|
+
/** Card size ('small' | 'medium' | 'large') */
|
|
62
|
+
cardSize: text({ maxLength: 10 }),
|
|
63
|
+
// Calendar/Timeline specific
|
|
64
|
+
/** Start date field ID */
|
|
65
|
+
dateField: text({ maxLength: 100 }),
|
|
66
|
+
/** End date field ID */
|
|
67
|
+
endDateField: text({ maxLength: 100 })
|
|
68
|
+
},
|
|
69
|
+
// Inherits access from its home Space (exploration 0181/0192).
|
|
70
|
+
authorization: spaceCascadeAuthorization("database")
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
export {
|
|
74
|
+
DatabaseViewSchema
|
|
75
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import {
|
|
2
|
+
spaceCascadeAuthorization
|
|
3
|
+
} from "./chunk-OCMSAKWV.js";
|
|
4
|
+
import {
|
|
5
|
+
defineSchema,
|
|
6
|
+
file,
|
|
7
|
+
number,
|
|
8
|
+
relation,
|
|
9
|
+
select,
|
|
10
|
+
text
|
|
11
|
+
} from "./chunk-EBNMV2VO.js";
|
|
12
|
+
|
|
13
|
+
// src/schema/schemas/database.ts
|
|
14
|
+
var DatabaseSchema = defineSchema({
|
|
15
|
+
name: "Database",
|
|
16
|
+
namespace: "xnet://xnet.fyi/",
|
|
17
|
+
version: "2.0.0",
|
|
18
|
+
properties: {
|
|
19
|
+
/** Database title */
|
|
20
|
+
title: text({ required: true, maxLength: 500 }),
|
|
21
|
+
/** Emoji or icon URL */
|
|
22
|
+
icon: text({}),
|
|
23
|
+
/** Cover image */
|
|
24
|
+
cover: file({ accept: ["image/*"] }),
|
|
25
|
+
/** Default view type for this database */
|
|
26
|
+
defaultView: select({
|
|
27
|
+
options: [
|
|
28
|
+
{ id: "table", name: "Table" },
|
|
29
|
+
{ id: "board", name: "Board" },
|
|
30
|
+
{ id: "list", name: "List" },
|
|
31
|
+
{ id: "gallery", name: "Gallery" },
|
|
32
|
+
{ id: "calendar", name: "Calendar" },
|
|
33
|
+
{ id: "timeline", name: "Timeline" }
|
|
34
|
+
],
|
|
35
|
+
default: "table"
|
|
36
|
+
}),
|
|
37
|
+
/**
|
|
38
|
+
* Cached row count for this database.
|
|
39
|
+
* Updated on row add/delete operations.
|
|
40
|
+
* Used for query routing decisions (local vs hub).
|
|
41
|
+
*/
|
|
42
|
+
rowCount: number({ min: 0, integer: true }),
|
|
43
|
+
/**
|
|
44
|
+
* Version of the database-defined schema (semver).
|
|
45
|
+
* Bumped when fields change (see schema-utils.ts bump rules).
|
|
46
|
+
* Used to build the database schema IRI: xnet://xnet.fyi/db/<id>@<version>
|
|
47
|
+
*/
|
|
48
|
+
schemaVersion: text({ maxLength: 20 }),
|
|
49
|
+
/** Canonical home; empty = Unfiled (exploration 0169) */
|
|
50
|
+
folder: relation({ target: "xnet://xnet.fyi/Folder@1.0.0" }),
|
|
51
|
+
/** Order among folder siblings — fractional index */
|
|
52
|
+
sortKey: text({ maxLength: 500 }),
|
|
53
|
+
/** Workspace-wide labels, referenced by id (exploration 0169) */
|
|
54
|
+
tags: relation({ target: "xnet://xnet.fyi/Tag@1.0.0", multiple: true }),
|
|
55
|
+
/** Canonical SECURITY home; empty = personal/private (exploration 0179) */
|
|
56
|
+
space: relation({ target: "xnet://xnet.fyi/Space@1.0.0" }),
|
|
57
|
+
/** Per-node visibility; `inherit` defers to the Space (exploration 0179) */
|
|
58
|
+
visibility: select({
|
|
59
|
+
options: [
|
|
60
|
+
{ id: "inherit", name: "Inherit", color: "gray" },
|
|
61
|
+
{ id: "private", name: "Private", color: "gray" },
|
|
62
|
+
{ id: "unlisted", name: "Unlisted", color: "yellow" },
|
|
63
|
+
{ id: "public", name: "Public", color: "green" }
|
|
64
|
+
],
|
|
65
|
+
default: "inherit"
|
|
66
|
+
})
|
|
67
|
+
},
|
|
68
|
+
// Y.Doc used ONLY as the awareness/presence channel — no persistent state
|
|
69
|
+
document: "yjs",
|
|
70
|
+
// Inherits access from its home Space (exploration 0181/0192).
|
|
71
|
+
authorization: spaceCascadeAuthorization()
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
export {
|
|
75
|
+
DatabaseSchema
|
|
76
|
+
};
|