@xnetjs/data 2.5.0 → 3.0.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 +5 -0
- package/dist/auth/index.d.ts +4 -4
- package/dist/chunk-GJAOMEQO.js +114 -0
- package/dist/chunk-KY62NUOI.js +67 -0
- package/dist/chunk-N37U6ZPI.js +789 -0
- package/dist/chunk-NFPEFD2I.js +42 -0
- package/dist/{chunk-ODOPVGUX.js → chunk-QKVIKVAL.js} +65 -26
- package/dist/{chunk-CY6EJUNV.js → chunk-S7SEN4LH.js} +5 -1
- package/dist/{chunk-4HJZJMPI.js → chunk-TN7LGV66.js} +1 -1
- package/dist/{chunk-YRFCXKJC.js → chunk-UQ2VFHU3.js} +2 -2
- package/dist/chunk-VZSEZNYA.js +83 -0
- package/dist/{chunk-JF4VCZER.js → chunk-WSINZHSR.js} +27 -1
- package/dist/{chunk-MAB662PR.js → chunk-YCBJDT23.js} +62 -48
- package/dist/{clone-VRVODkBn.d.ts → clone-ywzFVkID.d.ts} +4 -4
- package/dist/course-C5DXOIVO.js +24 -0
- package/dist/database/index.d.ts +5 -5
- package/dist/database/index.js +8 -8
- package/dist/event-VW3FBN4F.js +20 -0
- package/dist/{form-types-Dkqm9UO2.d.ts → form-types-BrHYdpi0.d.ts} +1 -1
- package/dist/{game-NEQP7OFX.js → game-7AXW7XKS.js} +1 -1
- package/dist/{grant-expiration-cleaner-CTsW0hvU.d.ts → grant-expiration-cleaner-CRS9OyhV.d.ts} +3 -3
- package/dist/index.d.ts +10 -320
- package/dist/index.js +292 -867
- package/dist/{moderation-HRMMBFVH.js → moderation-5Z4LKOKN.js} +5 -3
- package/dist/{page-MADZ5OHM.js → page-W4G6433H.js} +1 -1
- package/dist/portability/index.d.ts +330 -0
- package/dist/portability/index.js +34 -0
- package/dist/post-7IOO64MD.js +14 -0
- package/dist/{profile-5H6XWCK4.js → profile-KLHCAQY2.js} +1 -1
- package/dist/publication-3MN3WWKP.js +10 -0
- package/dist/{query-ast-h31svZnG.d.ts → query-ast-DQJO7yRV.d.ts} +1 -1
- package/dist/{registry-Dh4Kr3fo.d.ts → registry-C9IRLLeR.d.ts} +1 -1
- package/dist/schema/index.d.ts +366 -26
- package/dist/schema/index.js +195 -149
- package/dist/space-GBTEHZOK.js +1 -1
- package/dist/store/index.d.ts +4 -4
- package/dist/store/index.js +2 -2
- package/dist/{store-jukJYsvr.d.ts → store-D1oiFQuF.d.ts} +19 -2
- package/dist/{types-Z9dUzbDF.d.ts → types-gws1tSf-.d.ts} +1 -1
- package/package.json +27 -25
- package/dist/{chunk-TW5XJHNF.js → chunk-ANMAR3KY.js} +14 -14
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
spaceCascadeAuthorization
|
|
3
|
+
} from "./chunk-RLRAWZJE.js";
|
|
4
|
+
import {
|
|
5
|
+
checkbox,
|
|
6
|
+
defineSchema,
|
|
7
|
+
relation,
|
|
8
|
+
text
|
|
9
|
+
} from "./chunk-NH6OLO3X.js";
|
|
10
|
+
|
|
11
|
+
// src/schema/schemas/publication.ts
|
|
12
|
+
var PublicationSchema = defineSchema({
|
|
13
|
+
name: "Publication",
|
|
14
|
+
namespace: "xnet://xnet.fyi/",
|
|
15
|
+
properties: {
|
|
16
|
+
/** Display title, used as the feed title */
|
|
17
|
+
title: text({ required: true, maxLength: 200 }),
|
|
18
|
+
/** Feed description / tagline */
|
|
19
|
+
description: text({ maxLength: 1e3 }),
|
|
20
|
+
/** Absolute site root the posts publish under, e.g. `https://xnet.fyi` */
|
|
21
|
+
baseUrl: text({ maxLength: 500 }),
|
|
22
|
+
/** Path prefix beneath `baseUrl`, e.g. `/blog` */
|
|
23
|
+
basePath: text({ maxLength: 200 }),
|
|
24
|
+
/** Feed language tag (BCP 47), e.g. `en-gb` */
|
|
25
|
+
language: text({ maxLength: 20 }),
|
|
26
|
+
/** Canonical SECURITY home (exploration 0179) */
|
|
27
|
+
space: relation({ target: "xnet://xnet.fyi/Space@1.0.0" }),
|
|
28
|
+
/** Byline pool; a post may credit any subset (exploration 0269) */
|
|
29
|
+
authors: relation({ target: "xnet://xnet.fyi/Profile@1.0.0", multiple: true }),
|
|
30
|
+
/**
|
|
31
|
+
* Whether readers may follow this publication independently of its
|
|
32
|
+
* authors. Off makes it an archive: readable, but not subscribable.
|
|
33
|
+
*/
|
|
34
|
+
followable: checkbox({ default: true })
|
|
35
|
+
},
|
|
36
|
+
// Inherits access from its home Space (exploration 0181/0192).
|
|
37
|
+
authorization: spaceCascadeAuthorization()
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
export {
|
|
41
|
+
PublicationSchema
|
|
42
|
+
};
|
|
@@ -10,15 +10,15 @@ import {
|
|
|
10
10
|
ledgerAccountId,
|
|
11
11
|
ledgerWriteKind
|
|
12
12
|
} from "./chunk-3UOUVEZW.js";
|
|
13
|
-
import {
|
|
14
|
-
accountRecordId,
|
|
15
|
-
revocationRecordId
|
|
16
|
-
} from "./chunk-5ECIKN6Z.js";
|
|
17
13
|
import {
|
|
18
14
|
SYSTEM_SCHEMA_BASE_IRIS,
|
|
19
15
|
isSystemNamespaceResource,
|
|
20
16
|
isSystemSchemaIri
|
|
21
17
|
} from "./chunk-ZNHLH7SC.js";
|
|
18
|
+
import {
|
|
19
|
+
accountRecordId,
|
|
20
|
+
revocationRecordId
|
|
21
|
+
} from "./chunk-5ECIKN6Z.js";
|
|
22
22
|
import {
|
|
23
23
|
createNodeId,
|
|
24
24
|
getBaseSchemaIRI
|
|
@@ -913,7 +913,7 @@ import {
|
|
|
913
913
|
createUnsignedChange,
|
|
914
914
|
createBatchId
|
|
915
915
|
} from "@xnetjs/sync";
|
|
916
|
-
import { verifyChange, verifyChangeHash } from "@xnetjs/sync";
|
|
916
|
+
import { verifyChange, verifyChangeHash, verifyChangesFast } from "@xnetjs/sync";
|
|
917
917
|
|
|
918
918
|
// src/store/batch-write-orchestrator.ts
|
|
919
919
|
var elapsedMs = (startedAt) => Math.max(0, Date.now() - startedAt);
|
|
@@ -2699,32 +2699,34 @@ var NodeStore = class {
|
|
|
2699
2699
|
});
|
|
2700
2700
|
}
|
|
2701
2701
|
}
|
|
2702
|
-
async applyRemoteChange(change) {
|
|
2702
|
+
async applyRemoteChange(change, options = {}) {
|
|
2703
2703
|
const start = this.telemetry ? Date.now() : 0;
|
|
2704
2704
|
try {
|
|
2705
|
-
if (!
|
|
2706
|
-
|
|
2707
|
-
`[NodeStore] Remote change ${change.id} failed hash verification - data may be corrupted`
|
|
2708
|
-
);
|
|
2709
|
-
this.telemetry?.reportSecurityEvent("data.hash_verification_failed", "high");
|
|
2710
|
-
throw error;
|
|
2711
|
-
}
|
|
2712
|
-
try {
|
|
2713
|
-
const publicKey = parseDID(change.authorDID);
|
|
2714
|
-
if (!verifyChange(change, publicKey)) {
|
|
2705
|
+
if (!options.preVerified) {
|
|
2706
|
+
if (!verifyChangeHash(change)) {
|
|
2715
2707
|
const error = new Error(
|
|
2716
|
-
`[NodeStore] Remote change ${change.id} failed
|
|
2708
|
+
`[NodeStore] Remote change ${change.id} failed hash verification - data may be corrupted`
|
|
2717
2709
|
);
|
|
2718
|
-
this.telemetry?.reportSecurityEvent("data.
|
|
2710
|
+
this.telemetry?.reportSecurityEvent("data.hash_verification_failed", "high");
|
|
2719
2711
|
throw error;
|
|
2720
2712
|
}
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2713
|
+
try {
|
|
2714
|
+
const publicKey = parseDID(change.authorDID);
|
|
2715
|
+
if (!verifyChange(change, publicKey)) {
|
|
2716
|
+
const error = new Error(
|
|
2717
|
+
`[NodeStore] Remote change ${change.id} failed signature verification - signature does not match author ${change.authorDID}`
|
|
2718
|
+
);
|
|
2719
|
+
this.telemetry?.reportSecurityEvent("data.signature_verification_failed", "high");
|
|
2720
|
+
throw error;
|
|
2721
|
+
}
|
|
2722
|
+
} catch (err) {
|
|
2723
|
+
if (err instanceof Error && err.message.includes("failed")) {
|
|
2724
|
+
throw err;
|
|
2725
|
+
}
|
|
2726
|
+
throw new Error(
|
|
2727
|
+
`[NodeStore] Remote change ${change.id} failed verification: ${err instanceof Error ? err.message : String(err)}`
|
|
2728
|
+
);
|
|
2724
2729
|
}
|
|
2725
|
-
throw new Error(
|
|
2726
|
-
`[NodeStore] Remote change ${change.id} failed verification: ${err instanceof Error ? err.message : String(err)}`
|
|
2727
|
-
);
|
|
2728
2730
|
}
|
|
2729
2731
|
await this.enforceRemoteLedgerWrite(change);
|
|
2730
2732
|
if (this.authEvaluator) {
|
|
@@ -2774,6 +2776,36 @@ var NodeStore = class {
|
|
|
2774
2776
|
throw err;
|
|
2775
2777
|
}
|
|
2776
2778
|
}
|
|
2779
|
+
/**
|
|
2780
|
+
* Verify hash + signature for many remote changes at once.
|
|
2781
|
+
*
|
|
2782
|
+
* Results are positional and never short-circuit, so a caller can quarantine
|
|
2783
|
+
* exactly the changes that failed and still apply the rest. This runs the
|
|
2784
|
+
* SAME checks as {@link applyRemoteChange} — it just amortizes the native
|
|
2785
|
+
* crypto setup across the batch (exploration 0357).
|
|
2786
|
+
*/
|
|
2787
|
+
async verifyRemoteChanges(changes) {
|
|
2788
|
+
const entries = [];
|
|
2789
|
+
const slots = [];
|
|
2790
|
+
for (const change of changes) {
|
|
2791
|
+
if (!verifyChangeHash(change)) {
|
|
2792
|
+
this.telemetry?.reportSecurityEvent("data.hash_verification_failed", "high");
|
|
2793
|
+
slots.push(-1);
|
|
2794
|
+
continue;
|
|
2795
|
+
}
|
|
2796
|
+
try {
|
|
2797
|
+
slots.push(entries.push({ change, publicKey: parseDID(change.authorDID) }) - 1);
|
|
2798
|
+
} catch {
|
|
2799
|
+
slots.push(-1);
|
|
2800
|
+
}
|
|
2801
|
+
}
|
|
2802
|
+
const signatureResults = await verifyChangesFast(entries);
|
|
2803
|
+
for (const [index, ok] of signatureResults.entries()) {
|
|
2804
|
+
if (!ok) this.telemetry?.reportSecurityEvent("data.signature_verification_failed", "high");
|
|
2805
|
+
void index;
|
|
2806
|
+
}
|
|
2807
|
+
return slots.map((slot) => slot === -1 ? false : signatureResults[slot]);
|
|
2808
|
+
}
|
|
2777
2809
|
/**
|
|
2778
2810
|
* Apply multiple remote changes (from sync).
|
|
2779
2811
|
*/
|
|
@@ -2784,9 +2816,16 @@ var NodeStore = class {
|
|
|
2784
2816
|
{ lamport: b.lamport, author: b.authorDID }
|
|
2785
2817
|
)
|
|
2786
2818
|
);
|
|
2787
|
-
|
|
2819
|
+
const verdicts = await this.verifyRemoteChanges(sorted);
|
|
2820
|
+
for (const [index, change] of sorted.entries()) {
|
|
2821
|
+
if (!verdicts[index]) {
|
|
2822
|
+
console.warn(
|
|
2823
|
+
`[NodeStore] skipping remote change ${change.hash} for node ${change.payload?.nodeId}: failed hash or signature verification`
|
|
2824
|
+
);
|
|
2825
|
+
continue;
|
|
2826
|
+
}
|
|
2788
2827
|
try {
|
|
2789
|
-
await this.applyRemoteChange(change);
|
|
2828
|
+
await this.applyRemoteChange(change, { preVerified: true });
|
|
2790
2829
|
} catch (err) {
|
|
2791
2830
|
console.warn(
|
|
2792
2831
|
`[NodeStore] skipping un-appliable remote change for node ${change.payload?.nodeId}:`,
|
|
@@ -705,6 +705,9 @@ var ReviewTaskSchema = defineSchema({
|
|
|
705
705
|
},
|
|
706
706
|
authorization: reviewTaskAuthorization
|
|
707
707
|
});
|
|
708
|
+
function publicInteractionPolicyId(targetId) {
|
|
709
|
+
return `pipolicy:${targetId}`;
|
|
710
|
+
}
|
|
708
711
|
|
|
709
712
|
export {
|
|
710
713
|
AbuseReportSchema,
|
|
@@ -718,5 +721,6 @@ export {
|
|
|
718
721
|
QualitySignalSchema,
|
|
719
722
|
ContentProvenanceSchema,
|
|
720
723
|
AppealSchema,
|
|
721
|
-
ReviewTaskSchema
|
|
724
|
+
ReviewTaskSchema,
|
|
725
|
+
publicInteractionPolicyId
|
|
722
726
|
};
|
|
@@ -38,7 +38,7 @@ var ProfileSchema = defineSchema({
|
|
|
38
38
|
/**
|
|
39
39
|
* Linked ATProto identity (explorations 0301/0322/0337). These fields are
|
|
40
40
|
* the xNet half of the bidirectional binding: the PDS half is the signed
|
|
41
|
-
* `
|
|
41
|
+
* `fyi.xnet.identity.binding` record at `atprotoBindingUri`. Foreign DIDs are
|
|
42
42
|
* represent-only — they never sign xNet data — and a handle renders as
|
|
43
43
|
* "verified" only after the hub has resolved the DID document, fetched the
|
|
44
44
|
* binding record from the canonical PDS, and checked the xNet signature.
|
|
@@ -49,7 +49,7 @@ var PlayerIdentitySchema = defineSchema({
|
|
|
49
49
|
properties: {
|
|
50
50
|
/** Display / gamer name. */
|
|
51
51
|
displayName: text({ required: true, maxLength: 200 }),
|
|
52
|
-
/** The player's own
|
|
52
|
+
/** The player's own xNet `did:key` — the portable login across publishers. */
|
|
53
53
|
did: text({ maxLength: 512 }),
|
|
54
54
|
/** Avatar asset (glTF/USD), stored by reference. */
|
|
55
55
|
avatarAsset: file({ accept: [...GAME_ASSET_MIME_TYPES] }),
|
|
@@ -177,7 +177,7 @@ var GameAssetSchema = defineSchema({
|
|
|
177
177
|
namespace: GAME_NAMESPACE,
|
|
178
178
|
properties: {
|
|
179
179
|
title: text({ required: true, maxLength: 300 }),
|
|
180
|
-
/** The asset payload, by reference (CID) — never parsed by
|
|
180
|
+
/** The asset payload, by reference (CID) — never parsed by xNet. */
|
|
181
181
|
file: file({ required: true, accept: [...GAME_ASSET_MIME_TYPES] }),
|
|
182
182
|
format: select({ options: GAME_ASSET_FORMATS, default: "glb" }),
|
|
183
183
|
sourceGame: text({ maxLength: 200 }),
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import {
|
|
2
|
+
spaceCascadeAuthorization,
|
|
3
|
+
spaceContributorAuthorization
|
|
4
|
+
} from "./chunk-RLRAWZJE.js";
|
|
5
|
+
import {
|
|
6
|
+
created,
|
|
7
|
+
createdBy,
|
|
8
|
+
defineSchema,
|
|
9
|
+
number,
|
|
10
|
+
relation,
|
|
11
|
+
select,
|
|
12
|
+
text
|
|
13
|
+
} from "./chunk-NH6OLO3X.js";
|
|
14
|
+
|
|
15
|
+
// src/schema/schemas/event.ts
|
|
16
|
+
var EVENT_SCHEMA_IRI = "xnet://xnet.fyi/Event@1.0.0";
|
|
17
|
+
var RSVP_SCHEMA_IRI = "xnet://xnet.fyi/Rsvp@1.0.0";
|
|
18
|
+
var EventSchema = defineSchema({
|
|
19
|
+
name: "Event",
|
|
20
|
+
namespace: "xnet://xnet.fyi/",
|
|
21
|
+
properties: {
|
|
22
|
+
title: text({ required: true, maxLength: 300 }),
|
|
23
|
+
description: text({ maxLength: 2e3 }),
|
|
24
|
+
space: relation({ target: "xnet://xnet.fyi/Space@1.0.0" }),
|
|
25
|
+
/** Start, ms since epoch. The field CalendarView sorts and places on. */
|
|
26
|
+
startsAt: number({ required: true }),
|
|
27
|
+
/** End, ms since epoch. Absent = a point in time rather than a range. */
|
|
28
|
+
endsAt: number({}),
|
|
29
|
+
/** Where — a URL for online, a place for in-person. Free text either way. */
|
|
30
|
+
location: text({ maxLength: 500 }),
|
|
31
|
+
/**
|
|
32
|
+
* IANA timezone the host scheduled in (e.g. `Europe/London`), so a
|
|
33
|
+
* recurring community call renders correctly for everyone else. Absent =
|
|
34
|
+
* render in the viewer's local zone.
|
|
35
|
+
*/
|
|
36
|
+
timezone: text({ maxLength: 80 }),
|
|
37
|
+
cancelled: select({
|
|
38
|
+
options: [
|
|
39
|
+
{ id: "scheduled", name: "Scheduled", color: "green" },
|
|
40
|
+
{ id: "cancelled", name: "Cancelled", color: "red" }
|
|
41
|
+
],
|
|
42
|
+
default: "scheduled"
|
|
43
|
+
}),
|
|
44
|
+
createdAt: created(),
|
|
45
|
+
createdBy: createdBy()
|
|
46
|
+
},
|
|
47
|
+
document: void 0,
|
|
48
|
+
authorization: spaceCascadeAuthorization()
|
|
49
|
+
});
|
|
50
|
+
var RsvpSchema = defineSchema({
|
|
51
|
+
name: "Rsvp",
|
|
52
|
+
namespace: "xnet://xnet.fyi/",
|
|
53
|
+
properties: {
|
|
54
|
+
event: relation({ target: "xnet://xnet.fyi/Event@1.0.0", required: true }),
|
|
55
|
+
space: relation({ target: "xnet://xnet.fyi/Space@1.0.0" }),
|
|
56
|
+
response: select({
|
|
57
|
+
options: [
|
|
58
|
+
{ id: "going", name: "Going", color: "green" },
|
|
59
|
+
{ id: "maybe", name: "Maybe", color: "yellow" },
|
|
60
|
+
{ id: "declined", name: "Not going", color: "gray" }
|
|
61
|
+
],
|
|
62
|
+
required: true,
|
|
63
|
+
default: "going"
|
|
64
|
+
}),
|
|
65
|
+
createdAt: created(),
|
|
66
|
+
createdBy: createdBy()
|
|
67
|
+
},
|
|
68
|
+
document: void 0,
|
|
69
|
+
authorization: spaceContributorAuthorization()
|
|
70
|
+
});
|
|
71
|
+
function rsvpId(eventId, memberDid) {
|
|
72
|
+
return `rsvp:${eventId}:${memberDid}`;
|
|
73
|
+
}
|
|
74
|
+
var upcomingEvents = (events, now) => events.filter((e) => e.cancelled !== "cancelled" && (e.endsAt ?? e.startsAt ?? 0) >= now).sort((a, b) => (a.startsAt ?? 0) - (b.startsAt ?? 0));
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
EVENT_SCHEMA_IRI,
|
|
78
|
+
RSVP_SCHEMA_IRI,
|
|
79
|
+
EventSchema,
|
|
80
|
+
RsvpSchema,
|
|
81
|
+
rsvpId,
|
|
82
|
+
upcomingEvents
|
|
83
|
+
};
|
|
@@ -2,8 +2,10 @@ import {
|
|
|
2
2
|
spaceCascadeAuthorization
|
|
3
3
|
} from "./chunk-RLRAWZJE.js";
|
|
4
4
|
import {
|
|
5
|
+
date,
|
|
5
6
|
defineSchema,
|
|
6
7
|
file,
|
|
8
|
+
json,
|
|
7
9
|
relation,
|
|
8
10
|
select,
|
|
9
11
|
text
|
|
@@ -51,7 +53,31 @@ var PageSchema = defineSchema({
|
|
|
51
53
|
{ id: "space", name: "Space", color: "purple" }
|
|
52
54
|
],
|
|
53
55
|
default: "stack"
|
|
54
|
-
})
|
|
56
|
+
}),
|
|
57
|
+
// ─── Publishing (exploration 0362) ──────────────────────────────────────
|
|
58
|
+
// A post is a Page with editorial metadata, not a separate document type:
|
|
59
|
+
// publishing is a lens over the page substrate (0346), not a fork of it.
|
|
60
|
+
/** Publication this page is a post in; empty = not a post */
|
|
61
|
+
publication: relation({ target: "xnet://xnet.fyi/Publication@1.0.0" }),
|
|
62
|
+
/** URL segment, unique within the publication. Empty = never published */
|
|
63
|
+
slug: text({ maxLength: 80 }),
|
|
64
|
+
/** Feed/meta description. Falls back to a generated excerpt when empty */
|
|
65
|
+
excerpt: text({ maxLength: 1e3 }),
|
|
66
|
+
/**
|
|
67
|
+
* First publication time. **Absence is what makes a post a draft** — it is
|
|
68
|
+
* the single source of truth for public visibility in feeds and sitemaps.
|
|
69
|
+
*/
|
|
70
|
+
publishedAt: date({}),
|
|
71
|
+
/** Set when first published elsewhere, so search engines credit the original */
|
|
72
|
+
canonicalUrl: text({ maxLength: 500 }),
|
|
73
|
+
/**
|
|
74
|
+
* The published version: a frontier (`Record<NodeId, ChangeHash>`) pinned
|
|
75
|
+
* at publish time (exploration 0329). Editing the live page does not
|
|
76
|
+
* change what readers see until it is re-published.
|
|
77
|
+
*
|
|
78
|
+
* A pinned frontier is a pin: log pruning must respect it (0329's rule).
|
|
79
|
+
*/
|
|
80
|
+
publishedFrontier: json({})
|
|
55
81
|
},
|
|
56
82
|
document: "yjs",
|
|
57
83
|
// Collaborative Y.Doc for rich text
|
|
@@ -5,6 +5,12 @@ import {
|
|
|
5
5
|
EXTENSION_FIELD_SCHEMA_IRI,
|
|
6
6
|
SCHEMA_EXTENSION_SCHEMA_IRI
|
|
7
7
|
} from "./chunk-2JROE7ML.js";
|
|
8
|
+
import {
|
|
9
|
+
PresenceSummarySchema,
|
|
10
|
+
SchemaDefinitionSchema,
|
|
11
|
+
buildSystemNodeId,
|
|
12
|
+
validateSchemaDefinitionNode
|
|
13
|
+
} from "./chunk-ZNHLH7SC.js";
|
|
8
14
|
import {
|
|
9
15
|
ACCOUNT_RECORD_SCHEMA_IRI,
|
|
10
16
|
DEVICE_RECORD_SCHEMA_IRI,
|
|
@@ -15,12 +21,6 @@ import {
|
|
|
15
21
|
revocationRecordId,
|
|
16
22
|
revokedSubjects
|
|
17
23
|
} from "./chunk-5ECIKN6Z.js";
|
|
18
|
-
import {
|
|
19
|
-
PresenceSummarySchema,
|
|
20
|
-
SchemaDefinitionSchema,
|
|
21
|
-
buildSystemNodeId,
|
|
22
|
-
validateSchemaDefinitionNode
|
|
23
|
-
} from "./chunk-ZNHLH7SC.js";
|
|
24
24
|
import {
|
|
25
25
|
checkbox,
|
|
26
26
|
createNodeId,
|
|
@@ -353,7 +353,14 @@ function filterOrphanedComments(comments, resolvers) {
|
|
|
353
353
|
// src/schema/schemas/index.ts
|
|
354
354
|
var builtInSchemas = {
|
|
355
355
|
// Versioned IRIs (canonical)
|
|
356
|
-
"xnet://xnet.fyi/Page@1.0.0": () => import("./page-
|
|
356
|
+
"xnet://xnet.fyi/Page@1.0.0": () => import("./page-W4G6433H.js").then((m) => m.PageSchema),
|
|
357
|
+
"xnet://xnet.fyi/Post@1.0.0": () => import("./post-7IOO64MD.js").then((m) => m.PostSchema),
|
|
358
|
+
"xnet://xnet.fyi/Course@1.0.0": () => import("./course-C5DXOIVO.js").then((m) => m.CourseSchema),
|
|
359
|
+
"xnet://xnet.fyi/Lesson@1.0.0": () => import("./course-C5DXOIVO.js").then((m) => m.LessonSchema),
|
|
360
|
+
"xnet://xnet.fyi/LessonProgress@1.0.0": () => import("./course-C5DXOIVO.js").then((m) => m.LessonProgressSchema),
|
|
361
|
+
"xnet://xnet.fyi/Event@1.0.0": () => import("./event-VW3FBN4F.js").then((m) => m.EventSchema),
|
|
362
|
+
"xnet://xnet.fyi/Rsvp@1.0.0": () => import("./event-VW3FBN4F.js").then((m) => m.RsvpSchema),
|
|
363
|
+
"xnet://xnet.fyi/Publication@1.0.0": () => import("./publication-3MN3WWKP.js").then((m) => m.PublicationSchema),
|
|
357
364
|
"xnet://xnet.fyi/Folder@1.0.0": () => import("./folder-D4IL7UHP.js").then((m) => m.FolderSchema),
|
|
358
365
|
"xnet://xnet.fyi/Tag@1.0.0": () => import("./tag-LHP2J53R.js").then((m) => m.TagSchema),
|
|
359
366
|
"xnet://xnet.fyi/Database@2.0.0": () => import("./database-VJSYCFXH.js").then((m) => m.DatabaseSchema),
|
|
@@ -402,7 +409,7 @@ var builtInSchemas = {
|
|
|
402
409
|
"xnet://xnet.fyi/Draft@1.0.0": () => import("./draft-T5KDLPC4.js").then((m) => m.DraftSchema),
|
|
403
410
|
"xnet://xnet.fyi/Reaction@1.0.0": () => import("./reaction-MRZHOGPW.js").then((m) => m.ReactionSchema),
|
|
404
411
|
"xnet://xnet.fyi/DebugReport@1.0.0": () => import("./debug-report-JFSUVHHJ.js").then((m) => m.DebugReportSchema),
|
|
405
|
-
"xnet://xnet.fyi/Profile@1.0.0": () => import("./profile-
|
|
412
|
+
"xnet://xnet.fyi/Profile@1.0.0": () => import("./profile-KLHCAQY2.js").then((m) => m.ProfileSchema),
|
|
406
413
|
"xnet://xnet.fyi/Channel@1.0.0": () => import("./channel-DXLP6PEJ.js").then((m) => m.ChannelSchema),
|
|
407
414
|
"xnet://xnet.fyi/ChatMessage@1.0.0": () => import("./chat-message-EZW77LY3.js").then((m) => m.ChatMessageSchema),
|
|
408
415
|
// Integration schema pack (exploration 0213)
|
|
@@ -423,26 +430,26 @@ var builtInSchemas = {
|
|
|
423
430
|
"xnet://xnet.fyi/SchemaCompatibility@1.0.0": () => import("./system-X2F6HN3K.js").then((m) => m.SchemaCompatibilitySchema),
|
|
424
431
|
"xnet://xnet.fyi/SyncPolicy@1.0.0": () => import("./system-X2F6HN3K.js").then((m) => m.SyncPolicySchema),
|
|
425
432
|
"xnet://xnet.fyi/PresenceSummary@1.0.0": () => import("./system-X2F6HN3K.js").then((m) => m.PresenceSummarySchema),
|
|
426
|
-
"xnet://xnet.fyi/AbuseReport@1.0.0": () => import("./moderation-
|
|
427
|
-
"xnet://xnet.fyi/ModerationLabel@1.0.0": () => import("./moderation-
|
|
428
|
-
"xnet://xnet.fyi/PolicyList@1.0.0": () => import("./moderation-
|
|
429
|
-
"xnet://xnet.fyi/PolicySubscription@1.0.0": () => import("./moderation-
|
|
430
|
-
"xnet://xnet.fyi/PublicInteractionPolicy@1.0.0": () => import("./moderation-
|
|
431
|
-
"xnet://xnet.fyi/MessageRequest@1.0.0": () => import("./moderation-
|
|
432
|
-
"xnet://xnet.fyi/CommunityNote@1.0.0": () => import("./moderation-
|
|
433
|
-
"xnet://xnet.fyi/NoteRating@1.0.0": () => import("./moderation-
|
|
434
|
-
"xnet://xnet.fyi/QualitySignal@1.0.0": () => import("./moderation-
|
|
435
|
-
"xnet://xnet.fyi/ContentProvenance@1.0.0": () => import("./moderation-
|
|
436
|
-
"xnet://xnet.fyi/Appeal@1.0.0": () => import("./moderation-
|
|
437
|
-
"xnet://xnet.fyi/ReviewTask@1.0.0": () => import("./moderation-
|
|
433
|
+
"xnet://xnet.fyi/AbuseReport@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.AbuseReportSchema),
|
|
434
|
+
"xnet://xnet.fyi/ModerationLabel@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ModerationLabelSchema),
|
|
435
|
+
"xnet://xnet.fyi/PolicyList@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PolicyListSchema),
|
|
436
|
+
"xnet://xnet.fyi/PolicySubscription@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PolicySubscriptionSchema),
|
|
437
|
+
"xnet://xnet.fyi/PublicInteractionPolicy@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PublicInteractionPolicySchema),
|
|
438
|
+
"xnet://xnet.fyi/MessageRequest@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.MessageRequestSchema),
|
|
439
|
+
"xnet://xnet.fyi/CommunityNote@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.CommunityNoteSchema),
|
|
440
|
+
"xnet://xnet.fyi/NoteRating@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.NoteRatingSchema),
|
|
441
|
+
"xnet://xnet.fyi/QualitySignal@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.QualitySignalSchema),
|
|
442
|
+
"xnet://xnet.fyi/ContentProvenance@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ContentProvenanceSchema),
|
|
443
|
+
"xnet://xnet.fyi/Appeal@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.AppealSchema),
|
|
444
|
+
"xnet://xnet.fyi/ReviewTask@1.0.0": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ReviewTaskSchema),
|
|
438
445
|
// Game-interop schema pack (exploration 0200)
|
|
439
|
-
"xnet://xnet.fyi/PlayerIdentity@1.0.0": () => import("./game-
|
|
440
|
-
"xnet://xnet.fyi/Inventory@1.0.0": () => import("./game-
|
|
441
|
-
"xnet://xnet.fyi/GameItem@1.0.0": () => import("./game-
|
|
442
|
-
"xnet://xnet.fyi/Achievement@1.0.0": () => import("./game-
|
|
443
|
-
"xnet://xnet.fyi/MatchSession@1.0.0": () => import("./game-
|
|
444
|
-
"xnet://xnet.fyi/GameEconomyEntry@1.0.0": () => import("./game-
|
|
445
|
-
"xnet://xnet.fyi/GameAsset@1.0.0": () => import("./game-
|
|
446
|
+
"xnet://xnet.fyi/PlayerIdentity@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.PlayerIdentitySchema),
|
|
447
|
+
"xnet://xnet.fyi/Inventory@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.InventorySchema),
|
|
448
|
+
"xnet://xnet.fyi/GameItem@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.GameItemSchema),
|
|
449
|
+
"xnet://xnet.fyi/Achievement@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.AchievementSchema),
|
|
450
|
+
"xnet://xnet.fyi/MatchSession@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.MatchSessionSchema),
|
|
451
|
+
"xnet://xnet.fyi/GameEconomyEntry@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.GameEconomyEntrySchema),
|
|
452
|
+
"xnet://xnet.fyi/GameAsset@1.0.0": () => import("./game-7AXW7XKS.js").then((m) => m.GameAssetSchema),
|
|
446
453
|
// Memory schema pack (exploration 0211)
|
|
447
454
|
"xnet://xnet.fyi/MemoryItem@1.0.0": () => import("./memory-PAPUIKWD.js").then((m) => m.MemoryItemSchema),
|
|
448
455
|
// Agent schema pack (exploration 0337)
|
|
@@ -452,7 +459,14 @@ var builtInSchemas = {
|
|
|
452
459
|
"xnet://xnet.fyi/AgentApproval@1.0.0": () => import("./agent-IJLOS2LA.js").then((m) => m.AgentApprovalSchema),
|
|
453
460
|
"xnet://xnet.fyi/AgentNotification@1.0.0": () => import("./agent-IJLOS2LA.js").then((m) => m.AgentNotificationSchema),
|
|
454
461
|
// Legacy unversioned IRIs (aliases for the current version)
|
|
455
|
-
"xnet://xnet.fyi/Page": () => import("./page-
|
|
462
|
+
"xnet://xnet.fyi/Page": () => import("./page-W4G6433H.js").then((m) => m.PageSchema),
|
|
463
|
+
"xnet://xnet.fyi/Post": () => import("./post-7IOO64MD.js").then((m) => m.PostSchema),
|
|
464
|
+
"xnet://xnet.fyi/Course": () => import("./course-C5DXOIVO.js").then((m) => m.CourseSchema),
|
|
465
|
+
"xnet://xnet.fyi/Lesson": () => import("./course-C5DXOIVO.js").then((m) => m.LessonSchema),
|
|
466
|
+
"xnet://xnet.fyi/LessonProgress": () => import("./course-C5DXOIVO.js").then((m) => m.LessonProgressSchema),
|
|
467
|
+
"xnet://xnet.fyi/Event": () => import("./event-VW3FBN4F.js").then((m) => m.EventSchema),
|
|
468
|
+
"xnet://xnet.fyi/Rsvp": () => import("./event-VW3FBN4F.js").then((m) => m.RsvpSchema),
|
|
469
|
+
"xnet://xnet.fyi/Publication": () => import("./publication-3MN3WWKP.js").then((m) => m.PublicationSchema),
|
|
456
470
|
"xnet://xnet.fyi/Folder": () => import("./folder-D4IL7UHP.js").then((m) => m.FolderSchema),
|
|
457
471
|
"xnet://xnet.fyi/Tag": () => import("./tag-LHP2J53R.js").then((m) => m.TagSchema),
|
|
458
472
|
"xnet://xnet.fyi/Database": () => import("./database-VJSYCFXH.js").then((m) => m.DatabaseSchema),
|
|
@@ -496,7 +510,7 @@ var builtInSchemas = {
|
|
|
496
510
|
"xnet://xnet.fyi/Comment": () => import("./comment-2AS6EGH3.js").then((m) => m.CommentSchema),
|
|
497
511
|
"xnet://xnet.fyi/Reaction": () => import("./reaction-MRZHOGPW.js").then((m) => m.ReactionSchema),
|
|
498
512
|
"xnet://xnet.fyi/DebugReport": () => import("./debug-report-JFSUVHHJ.js").then((m) => m.DebugReportSchema),
|
|
499
|
-
"xnet://xnet.fyi/Profile": () => import("./profile-
|
|
513
|
+
"xnet://xnet.fyi/Profile": () => import("./profile-KLHCAQY2.js").then((m) => m.ProfileSchema),
|
|
500
514
|
"xnet://xnet.fyi/Channel": () => import("./channel-DXLP6PEJ.js").then((m) => m.ChannelSchema),
|
|
501
515
|
"xnet://xnet.fyi/ChatMessage": () => import("./chat-message-EZW77LY3.js").then((m) => m.ChatMessageSchema),
|
|
502
516
|
"xnet://xnet.fyi/Feed": () => import("./feed-WR4A7XUF.js").then((m) => m.FeedSchema),
|
|
@@ -516,26 +530,26 @@ var builtInSchemas = {
|
|
|
516
530
|
"xnet://xnet.fyi/SchemaCompatibility": () => import("./system-X2F6HN3K.js").then((m) => m.SchemaCompatibilitySchema),
|
|
517
531
|
"xnet://xnet.fyi/SyncPolicy": () => import("./system-X2F6HN3K.js").then((m) => m.SyncPolicySchema),
|
|
518
532
|
"xnet://xnet.fyi/PresenceSummary": () => import("./system-X2F6HN3K.js").then((m) => m.PresenceSummarySchema),
|
|
519
|
-
"xnet://xnet.fyi/AbuseReport": () => import("./moderation-
|
|
520
|
-
"xnet://xnet.fyi/ModerationLabel": () => import("./moderation-
|
|
521
|
-
"xnet://xnet.fyi/PolicyList": () => import("./moderation-
|
|
522
|
-
"xnet://xnet.fyi/PolicySubscription": () => import("./moderation-
|
|
523
|
-
"xnet://xnet.fyi/PublicInteractionPolicy": () => import("./moderation-
|
|
524
|
-
"xnet://xnet.fyi/MessageRequest": () => import("./moderation-
|
|
525
|
-
"xnet://xnet.fyi/CommunityNote": () => import("./moderation-
|
|
526
|
-
"xnet://xnet.fyi/NoteRating": () => import("./moderation-
|
|
527
|
-
"xnet://xnet.fyi/QualitySignal": () => import("./moderation-
|
|
528
|
-
"xnet://xnet.fyi/ContentProvenance": () => import("./moderation-
|
|
529
|
-
"xnet://xnet.fyi/Appeal": () => import("./moderation-
|
|
530
|
-
"xnet://xnet.fyi/ReviewTask": () => import("./moderation-
|
|
533
|
+
"xnet://xnet.fyi/AbuseReport": () => import("./moderation-5Z4LKOKN.js").then((m) => m.AbuseReportSchema),
|
|
534
|
+
"xnet://xnet.fyi/ModerationLabel": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ModerationLabelSchema),
|
|
535
|
+
"xnet://xnet.fyi/PolicyList": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PolicyListSchema),
|
|
536
|
+
"xnet://xnet.fyi/PolicySubscription": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PolicySubscriptionSchema),
|
|
537
|
+
"xnet://xnet.fyi/PublicInteractionPolicy": () => import("./moderation-5Z4LKOKN.js").then((m) => m.PublicInteractionPolicySchema),
|
|
538
|
+
"xnet://xnet.fyi/MessageRequest": () => import("./moderation-5Z4LKOKN.js").then((m) => m.MessageRequestSchema),
|
|
539
|
+
"xnet://xnet.fyi/CommunityNote": () => import("./moderation-5Z4LKOKN.js").then((m) => m.CommunityNoteSchema),
|
|
540
|
+
"xnet://xnet.fyi/NoteRating": () => import("./moderation-5Z4LKOKN.js").then((m) => m.NoteRatingSchema),
|
|
541
|
+
"xnet://xnet.fyi/QualitySignal": () => import("./moderation-5Z4LKOKN.js").then((m) => m.QualitySignalSchema),
|
|
542
|
+
"xnet://xnet.fyi/ContentProvenance": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ContentProvenanceSchema),
|
|
543
|
+
"xnet://xnet.fyi/Appeal": () => import("./moderation-5Z4LKOKN.js").then((m) => m.AppealSchema),
|
|
544
|
+
"xnet://xnet.fyi/ReviewTask": () => import("./moderation-5Z4LKOKN.js").then((m) => m.ReviewTaskSchema),
|
|
531
545
|
// Game-interop schema pack (exploration 0200)
|
|
532
|
-
"xnet://xnet.fyi/PlayerIdentity": () => import("./game-
|
|
533
|
-
"xnet://xnet.fyi/Inventory": () => import("./game-
|
|
534
|
-
"xnet://xnet.fyi/GameItem": () => import("./game-
|
|
535
|
-
"xnet://xnet.fyi/Achievement": () => import("./game-
|
|
536
|
-
"xnet://xnet.fyi/MatchSession": () => import("./game-
|
|
537
|
-
"xnet://xnet.fyi/GameEconomyEntry": () => import("./game-
|
|
538
|
-
"xnet://xnet.fyi/GameAsset": () => import("./game-
|
|
546
|
+
"xnet://xnet.fyi/PlayerIdentity": () => import("./game-7AXW7XKS.js").then((m) => m.PlayerIdentitySchema),
|
|
547
|
+
"xnet://xnet.fyi/Inventory": () => import("./game-7AXW7XKS.js").then((m) => m.InventorySchema),
|
|
548
|
+
"xnet://xnet.fyi/GameItem": () => import("./game-7AXW7XKS.js").then((m) => m.GameItemSchema),
|
|
549
|
+
"xnet://xnet.fyi/Achievement": () => import("./game-7AXW7XKS.js").then((m) => m.AchievementSchema),
|
|
550
|
+
"xnet://xnet.fyi/MatchSession": () => import("./game-7AXW7XKS.js").then((m) => m.MatchSessionSchema),
|
|
551
|
+
"xnet://xnet.fyi/GameEconomyEntry": () => import("./game-7AXW7XKS.js").then((m) => m.GameEconomyEntrySchema),
|
|
552
|
+
"xnet://xnet.fyi/GameAsset": () => import("./game-7AXW7XKS.js").then((m) => m.GameAssetSchema),
|
|
539
553
|
// Memory schema pack (exploration 0211)
|
|
540
554
|
"xnet://xnet.fyi/MemoryItem": () => import("./memory-PAPUIKWD.js").then((m) => m.MemoryItemSchema),
|
|
541
555
|
// Agent schema pack (exploration 0337)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { N as NodeStore } from './store-
|
|
1
|
+
import { C as CellValue, a9 as FormSubmissionMeta, H as ColumnDefinition, j as FieldType, k as FieldConfig, M as SelectColor, l as FieldNode, S as SelectOptionNode, W as ViewType, Y as FilterGroup, $ as SortConfig, X as ViewConfig, E as ColumnType, _ as FilterOperator, O as RollupAggregation, m as RollupColumnConfig } from './form-types-BrHYdpi0.js';
|
|
2
|
+
import { ar as NodeQueryMaterializedViewOptions, h as NodeState, E as PropertyType, S as SchemaIRI, a as Schema } from './types-gws1tSf-.js';
|
|
3
|
+
import { N as NodeStore } from './store-D1oiFQuF.js';
|
|
4
4
|
import * as Y from 'yjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -2051,4 +2051,4 @@ declare function cloneSampleRows(rows: Array<Record<string, unknown>>, idMap: Ma
|
|
|
2051
2051
|
*/
|
|
2052
2052
|
declare function cloneSchema(source: CloneSourceData, options?: CloneSchemaOptions): CloneSchemaResult;
|
|
2053
2053
|
|
|
2054
|
-
export { getViews$1 as $, getTitleField as A, createField as B, type CreateRowOptions as C, type DatabaseRowNode as D, updateField as E, deleteField as F, moveField as G, duplicateField as H,
|
|
2054
|
+
export { getViews$1 as $, getTitleField as A, createField as B, type CreateRowOptions as C, type DatabaseRowNode as D, updateField as E, deleteField as F, moveField as G, duplicateField as H, ensureSchemaExtension as I, createExtensionField as J, renameExtensionField as K, deleteExtensionField as L, MAX_KEY_LENGTH as M, type EnsureExtensionOptions as N, type CreateExtensionFieldOptions as O, getSelectOptions as P, type QueryRowsOptions as Q, RICHTEXT_PREFIX as R, getDatabaseSelectOptions as S, createSelectOption as T, type UpdateFieldOptions as U, updateSelectOption as V, deleteSelectOption as W, moveSelectOption as X, type ViewNode as Y, type CreateViewOptions as Z, type UpdateViewOptions as _, type QueryRowsResult as a, formatValue as a$, getView$1 as a0, createView$1 as a1, updateView$1 as a2, deleteView$1 as a3, duplicateView$1 as a4, moveView as a5, setViewFilters$1 as a6, setViewSorts$1 as a7, setViewGroupBy$1 as a8, toggleViewGroupCollapsed as a9, computeRollup as aA, batchComputeRollups as aB, validateRollupConfig as aC, type RollupRow as aD, type RollupContext as aE, FormulaService as aF, createFormulaService as aG, type FormulaRow as aH, type FormulaValidationResult as aI, parseCSV as aJ, parseCSVLine as aK, guessColumnType as aL, parseValue as aM, parseRow as aN, inferColumnTypes as aO, parseJSON as aP, inferColumnsFromRows as aQ, inferTypeFromValues as aR, toColumnDefinitions as aS, validateJsonData as aT, type ParsedCSV as aU, type CsvParseOptions as aV, type ParsedJSON as aW, type InferredColumn as aX, type JsonParseOptions as aY, exportToCsv as aZ, escapeCSV as a_, setFieldHidden as aa, setViewFieldWidth as ab, setViewFieldOrder as ac, effectiveFieldSortKey as ad, setupDatabase as ae, type SetupDatabaseResult as af, DEFAULT_DATABASE_SCHEMA_VERSION as ag, fieldsToStoredColumns as ah, buildSchemaFromFields as ai, getDatabaseSchemaIRI as aj, createNodeDatabaseSchemaResolver as ak, initializeDatabaseDoc as al, isDatabaseDocInitialized as am, addDefaultTitleColumn as an, addDefaultTableView as ao, setupNewDatabase as ap, getMeta as aq, setMeta as ar, deleteMeta as as, getDatabaseDocumentModel as at, type DatabaseDocumentModel as au, convertCellValue as av, cellValueToText as aw, type ConvertContext as ax, type ConvertedCell as ay, aggregate as az, updateCells as b, type GroupableRow as b$, createCsvBlob as b0, downloadCsv as b1, exportToJson as b2, exportToJsonArray as b3, exportToNdjson as b4, createJsonBlob as b5, downloadJson as b6, type ExportRow$1 as b7, type CsvExportOptions as b8, type JsonExportOptions as b9, setVisibleColumns as bA, showColumn as bB, hideColumn as bC, reorderViewColumns as bD, setColumnWidth as bE, OPERATORS_BY_TYPE as bF, OPERATOR_LABELS as bG, getOperatorsForType as bH, isValidOperator as bI, getOperatorLabel as bJ, operatorRequiresValue as bK, filterRows as bL, createEqualsFilter as bM, createAnyOfFilter as bN, combineFiltersAnd as bO, combineFiltersOr as bP, type FilterableRow as bQ, sortRows as bR, createSort as bS, toggleSortDirection as bT, addOrToggleSort as bU, removeSort as bV, type SortableRow as bW, groupRows as bX, toggleGroupCollapsed as bY, expandAllGroups as bZ, collapseAllGroups as b_, type ExportedJSON as ba, type ExportedColumn as bb, getColumns as bc, getColumn as bd, getColumnIndex as be, getTitleColumn as bf, createColumn as bg, updateColumn as bh, deleteColumn as bi, reorderColumn as bj, duplicateColumn as bk, getViews as bl, getView as bm, getViewByType as bn, createView as bo, updateView as bp, deleteView as bq, duplicateView as br, setViewFilters as bs, clearViewFilters as bt, setViewSorts as bu, addViewSort as bv, removeViewSort as bw, clearViewSorts as bx, setViewGroupBy as by, toggleGroupCollapsed$1 as bz, createRow as c, type GroupConfig as c0, type RowGroup as c1, type GroupAggregates as c2, executeQuery as c3, createFilterQuery as c4, createSortQuery as c5, createPaginatedQuery as c6, flattenGroups as c7, getTotalFromGroups as c8, type QueryableRow as c9, cloneSampleRows as cA, generateColumnIdMap as cB, remapViewColumnIds as cC, type CloneSchemaOptions as cD, type CloneSchemaResult as cE, type CloneSourceData as cF, getEmptyValue as cG, isNumericAggregation as cH, getAggregationResultType as cI, type QueryOptions as ca, type QueryResult as cb, buildSchemaIRI as cc, parseDatabaseSchemaIRI as cd, isDatabaseSchemaIRI as ce, parseVersion as cf, bumpSchemaVersion as cg, createInitialSchemaMetadata as ch, buildDatabaseSchema as ci, createVersionEntry as cj, pruneVersionHistory as ck, getVersionBumpType as cl, DATABASE_SCHEMA_NAMESPACE as cm, DATABASE_SCHEMA_PREFIX as cn, MAX_VERSION_HISTORY as co, type DatabaseSchemaMetadata as cp, type StoredColumn as cq, type SchemaVersionEntry as cr, type VersionBumpType as cs, createDatabaseSchemaResolver as ct, extractSchemaFromDoc as cu, getSchemaIRIFromDoc as cv, type DocFetcher as cw, type CreateDatabaseSchemaResolverOptions as cx, cloneSchema as cy, cloneColumns as cz, deleteRow as d, checkNeedsRebalancing as e, generateSortKey as f, getRow as g, generateSortKeyWithJitter as h, isValidSortKey as i, compareSortKeys as j, rebalanceSortKeys as k, getRichTextCell as l, moveRow as m, needsRebalancing as n, hasRichTextContent as o, hasRichTextColumns as p, queryRows as q, rebalanceDatabase as r, getRichTextColumnIds as s, deleteRichTextCell as t, updateCell as u, getRichTextPlainText as v, type CreateFieldOptions as w, type CreateSelectOptionOptions as x, getFields as y, getField as z };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
COURSE_SCHEMA_IRI,
|
|
3
|
+
CourseSchema,
|
|
4
|
+
LESSON_PROGRESS_SCHEMA_IRI,
|
|
5
|
+
LESSON_SCHEMA_IRI,
|
|
6
|
+
LessonProgressSchema,
|
|
7
|
+
LessonSchema,
|
|
8
|
+
courseCompletion,
|
|
9
|
+
lessonProgressId
|
|
10
|
+
} from "./chunk-GJAOMEQO.js";
|
|
11
|
+
import "./chunk-RLRAWZJE.js";
|
|
12
|
+
import "./chunk-GSLOK5KV.js";
|
|
13
|
+
import "./chunk-NH6OLO3X.js";
|
|
14
|
+
import "./chunk-D4LUUZYD.js";
|
|
15
|
+
export {
|
|
16
|
+
COURSE_SCHEMA_IRI,
|
|
17
|
+
CourseSchema,
|
|
18
|
+
LESSON_PROGRESS_SCHEMA_IRI,
|
|
19
|
+
LESSON_SCHEMA_IRI,
|
|
20
|
+
LessonProgressSchema,
|
|
21
|
+
LessonSchema,
|
|
22
|
+
courseCompletion,
|
|
23
|
+
lessonProgressId
|
|
24
|
+
};
|