@undefineds.co/models 0.2.19 → 0.2.22
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 +178 -522
- package/dist/agent.repository.js +2 -2
- package/dist/agent.schema.d.ts +20 -3
- package/dist/agent.schema.js +3 -1
- package/dist/ai-config/index.d.ts +24 -0
- package/dist/ai-config/index.js +133 -23
- package/dist/ai-model.schema.d.ts +13 -3
- package/dist/ai-model.schema.js +6 -4
- package/dist/ai-provider.schema.d.ts +13 -3
- package/dist/ai-provider.schema.js +7 -3
- package/dist/ai-runtime.schema.d.ts +84 -0
- package/dist/ai-runtime.schema.js +64 -0
- package/dist/approval.schema.d.ts +1 -0
- package/dist/approval.schema.js +11 -0
- package/dist/audit.schema.d.ts +1 -0
- package/dist/audit.schema.js +11 -0
- package/dist/chat.repository.js +2 -2
- package/dist/chat.schema.d.ts +1 -1
- package/dist/chat.schema.js +1 -1
- package/dist/contact.repository.js +2 -2
- package/dist/contact.schema.d.ts +26 -4
- package/dist/contact.schema.js +4 -2
- package/dist/credential.schema.d.ts +111 -3
- package/dist/credential.schema.js +15 -2
- package/dist/favorite/favorite.schema.d.ts +18 -4
- package/dist/favorite/favorite.schema.js +4 -2
- package/dist/favorite/index.d.ts +1 -1
- package/dist/favorite/index.js +1 -1
- package/dist/favorite/starred-sync.d.ts +2 -2
- package/dist/favorite/starred-sync.js +4 -4
- package/dist/file/file.schema.d.ts +26 -5
- package/dist/file/file.schema.js +5 -3
- package/dist/file/index.d.ts +1 -1
- package/dist/file/index.js +1 -1
- package/dist/grant.schema.d.ts +1 -0
- package/dist/grant.schema.js +3 -0
- package/dist/inbox-notification.schema.d.ts +10 -3
- package/dist/inbox-notification.schema.js +3 -1
- package/dist/index.d.ts +17 -17
- package/dist/index.js +17 -21
- package/dist/message.repository.js +2 -2
- package/dist/message.schema.js +8 -8
- package/dist/namespaces.d.ts +0 -3
- package/dist/namespaces.js +33 -7
- package/dist/profile.d.ts +2 -1
- package/dist/profile.js +6 -3
- package/dist/profile.repository.js +3 -3
- package/dist/profile.schema.d.ts +16 -3
- package/dist/profile.schema.js +3 -1
- package/dist/repository.d.ts +6 -1
- package/dist/repository.js +6 -1
- package/dist/schema.d.ts +102 -10
- package/dist/schema.js +31 -21
- package/dist/session/index.d.ts +1 -1
- package/dist/session/index.js +1 -1
- package/dist/session/session.schema.d.ts +7 -2
- package/dist/session/session.schema.js +32 -4
- package/dist/session.repository.d.ts +4 -0
- package/dist/session.repository.js +2 -2
- package/dist/settings/index.d.ts +1 -1
- package/dist/settings/index.js +1 -1
- package/dist/settings/settings.schema.d.ts +17 -5
- package/dist/settings/settings.schema.js +4 -2
- package/dist/thread.repository.js +2 -2
- package/dist/thread.schema.js +2 -2
- package/dist/vocab/message.vocab.js +8 -8
- package/dist/vocab/thread.vocab.js +2 -2
- package/package.json +15 -8
- package/dist/watch/index.d.ts +0 -281
- package/dist/watch/index.js +0 -1493
package/dist/approval.schema.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
1
|
import { extractPodResourceTemplateValue, podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
export function buildApprovalSubjectPath(approvalId, createdAt = new Date()) {
|
|
4
|
+
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
5
|
+
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
6
|
+
const yyyy = String(safeDate.getUTCFullYear());
|
|
7
|
+
const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
|
|
8
|
+
const dd = String(safeDate.getUTCDate()).padStart(2, '0');
|
|
9
|
+
return `/.data/approvals/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(approvalId)}`;
|
|
10
|
+
}
|
|
3
11
|
export function extractApprovalIdFromApprovalRef(approvalRef) {
|
|
12
|
+
if (approvalRef && !/[/:#]/.test(approvalRef)) {
|
|
13
|
+
return approvalRef;
|
|
14
|
+
}
|
|
4
15
|
return extractPodResourceTemplateValue(approvalResource, approvalRef);
|
|
5
16
|
}
|
|
6
17
|
// Approval request resource (separate from Solid inbox notifications).
|
package/dist/audit.schema.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function buildAuditSubjectPath(auditId: string, createdAt?: Date | string | number): string;
|
|
1
2
|
export declare const auditResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
3
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
4
|
action: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
package/dist/audit.schema.js
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { extractPodResourceTemplateValue, podTable, uri, string, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
export function buildAuditSubjectPath(auditId, createdAt = new Date()) {
|
|
4
|
+
const date = createdAt instanceof Date ? createdAt : new Date(createdAt);
|
|
5
|
+
const safeDate = Number.isFinite(date.getTime()) ? date : new Date();
|
|
6
|
+
const yyyy = String(safeDate.getUTCFullYear());
|
|
7
|
+
const mm = String(safeDate.getUTCMonth() + 1).padStart(2, '0');
|
|
8
|
+
const dd = String(safeDate.getUTCDate()).padStart(2, '0');
|
|
9
|
+
return `/.data/audits/${yyyy}/${mm}/${dd}.ttl#${encodeURIComponent(auditId)}`;
|
|
10
|
+
}
|
|
3
11
|
// Append-only audit entry resource (separate from Solid inbox notifications).
|
|
4
12
|
// Audit entries are independent events; session/chat/thread are optional relations,
|
|
5
13
|
// not storage ownership boundaries.
|
|
@@ -30,6 +38,9 @@ export const auditResource = podTable('audit', {
|
|
|
30
38
|
subjectTemplate: '{yyyy}/{MM}/{dd}.ttl#{id}',
|
|
31
39
|
});
|
|
32
40
|
export function extractAuditIdFromAuditRef(auditRef) {
|
|
41
|
+
if (auditRef && !/[/:#]/.test(auditRef)) {
|
|
42
|
+
return auditRef;
|
|
43
|
+
}
|
|
33
44
|
return extractPodResourceTemplateValue(auditResource, auditRef);
|
|
34
45
|
}
|
|
35
46
|
// Compatibility alias. New model code should prefer `auditResource`.
|
package/dist/chat.repository.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { definePodRepository } from './repository.js';
|
|
2
|
-
import {
|
|
2
|
+
import { chatResource } from './chat.schema.js';
|
|
3
3
|
export const chatRepository = definePodRepository({
|
|
4
4
|
namespace: 'chat',
|
|
5
|
-
table:
|
|
5
|
+
table: chatResource,
|
|
6
6
|
searchableFields: ['title', 'description'],
|
|
7
7
|
defaultSort: { field: 'lastActiveAt', direction: 'desc' },
|
|
8
8
|
});
|
package/dist/chat.schema.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface ChatMetadata {
|
|
|
11
11
|
* where a runtime executes.
|
|
12
12
|
* - Runtime/workspace/place/session context belongs on Thread.
|
|
13
13
|
* - Direct LinX CLI entry should use a chat representing the AI secretary.
|
|
14
|
-
* -
|
|
14
|
+
* - Auto-mode entry should use a chat representing the controlled agent/tool, such as
|
|
15
15
|
* Codex, Claude Code, or a concrete AI identity when available.
|
|
16
16
|
*
|
|
17
17
|
* Storage structure (aligned with xpod):
|
package/dist/chat.schema.js
CHANGED
|
@@ -9,7 +9,7 @@ import { UDFS, DCTerms, SCHEMA, MEETING, WF } from './namespaces.js';
|
|
|
9
9
|
* where a runtime executes.
|
|
10
10
|
* - Runtime/workspace/place/session context belongs on Thread.
|
|
11
11
|
* - Direct LinX CLI entry should use a chat representing the AI secretary.
|
|
12
|
-
* -
|
|
12
|
+
* - Auto-mode entry should use a chat representing the controlled agent/tool, such as
|
|
13
13
|
* Codex, Claude Code, or a concrete AI identity when available.
|
|
14
14
|
*
|
|
15
15
|
* Storage structure (aligned with xpod):
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { definePodRepository } from './repository.js';
|
|
2
|
-
import {
|
|
2
|
+
import { contactResource } from './contact.schema.js';
|
|
3
3
|
export const contactRepository = definePodRepository({
|
|
4
4
|
namespace: 'contact',
|
|
5
|
-
table:
|
|
5
|
+
table: contactResource,
|
|
6
6
|
searchableFields: ['name', 'alias', 'note'],
|
|
7
7
|
defaultSort: { field: 'name', direction: 'asc' },
|
|
8
8
|
});
|
package/dist/contact.schema.d.ts
CHANGED
|
@@ -26,8 +26,30 @@ export declare function isGroupContact(contact: ContactClassifier | null | undef
|
|
|
26
26
|
export declare function isAgentContact(contact: ContactClassifier | null | undefined): boolean;
|
|
27
27
|
export declare function normalizeContactGender(value: string | null | undefined, fallback?: ContactGenderValue): ContactGenderValue | undefined;
|
|
28
28
|
/**
|
|
29
|
-
* Contact
|
|
29
|
+
* Contact resource - unified contact index for all contact types.
|
|
30
30
|
*/
|
|
31
|
+
export declare const contactResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
32
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
33
|
+
name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
34
|
+
avatarUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
35
|
+
entityUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
36
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, true>;
|
|
37
|
+
contactType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
38
|
+
isPublic: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
39
|
+
externalPlatform: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
40
|
+
externalId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
41
|
+
alias: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
42
|
+
starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
43
|
+
note: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
44
|
+
sortKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
45
|
+
gender: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
46
|
+
province: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
47
|
+
city: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
48
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
49
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
50
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
51
|
+
lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
52
|
+
}>>;
|
|
31
53
|
export declare const contactTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
32
54
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
33
55
|
name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
@@ -50,7 +72,7 @@ export declare const contactTable: import("@undefineds.co/drizzle-solid/dist/cor
|
|
|
50
72
|
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
51
73
|
lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
52
74
|
}>>;
|
|
53
|
-
export type ContactRow = typeof
|
|
54
|
-
export type ContactInsert = typeof
|
|
55
|
-
export type ContactUpdate = typeof
|
|
75
|
+
export type ContactRow = typeof contactResource.$inferSelect;
|
|
76
|
+
export type ContactInsert = typeof contactResource.$inferInsert;
|
|
77
|
+
export type ContactUpdate = typeof contactResource.$inferUpdate;
|
|
56
78
|
export {};
|
package/dist/contact.schema.js
CHANGED
|
@@ -30,9 +30,9 @@ export function normalizeContactGender(value, fallback) {
|
|
|
30
30
|
return fallback;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Contact
|
|
33
|
+
* Contact resource - unified contact index for all contact types.
|
|
34
34
|
*/
|
|
35
|
-
export const
|
|
35
|
+
export const contactResource = podTable('contact', {
|
|
36
36
|
id: id('id'),
|
|
37
37
|
// Display information (cached for search/display)
|
|
38
38
|
name: string('name').predicate(VCARD.fn).notNull(),
|
|
@@ -70,3 +70,5 @@ export const contactTable = podTable('contact', {
|
|
|
70
70
|
namespace: UDFS,
|
|
71
71
|
subjectTemplate: '{id}.ttl',
|
|
72
72
|
});
|
|
73
|
+
// Compatibility alias. New model code should prefer `contactResource`.
|
|
74
|
+
export const contactTable = contactResource;
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
export declare const credentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
|
+
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
4
|
+
service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
5
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
6
|
+
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
7
|
+
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
8
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
9
|
+
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
10
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
11
|
+
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
12
|
+
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
13
|
+
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
14
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
15
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
17
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
18
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
19
|
+
}>>;
|
|
1
20
|
export declare const credentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
21
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
22
|
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
@@ -5,11 +24,100 @@ export declare const credentialTable: import("@undefineds.co/drizzle-solid/dist/
|
|
|
5
24
|
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
6
25
|
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
7
26
|
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
27
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
28
|
+
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
29
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
30
|
+
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
31
|
+
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
32
|
+
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
33
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
34
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
35
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
36
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
37
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
38
|
+
}>>;
|
|
39
|
+
export declare const apiKeyCredentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
40
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
41
|
+
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
42
|
+
service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
43
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
44
|
+
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
45
|
+
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
46
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
47
|
+
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
48
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
49
|
+
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
50
|
+
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
51
|
+
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
52
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
53
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
54
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
55
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
56
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
57
|
+
}>>;
|
|
58
|
+
export declare const apiKeyCredentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
59
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
60
|
+
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
61
|
+
service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
62
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
63
|
+
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
64
|
+
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
65
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
66
|
+
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
67
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
68
|
+
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
69
|
+
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
70
|
+
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
71
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
72
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
73
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
74
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
75
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
76
|
+
}>>;
|
|
77
|
+
export declare const oauthCredentialResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
78
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
79
|
+
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
80
|
+
service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
81
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
82
|
+
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
83
|
+
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
84
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
85
|
+
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
86
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
87
|
+
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
88
|
+
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
89
|
+
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
90
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
91
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
92
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
93
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
94
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
95
|
+
}>>;
|
|
96
|
+
export declare const oauthCredentialTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
97
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
98
|
+
provider: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
99
|
+
service: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
100
|
+
status: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
101
|
+
apiKey: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
102
|
+
baseUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
103
|
+
proxyUrl: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
8
104
|
label: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
105
|
+
isDefault: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
9
106
|
lastUsedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
10
107
|
failCount: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, false, true>;
|
|
11
108
|
rateLimitResetAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
109
|
+
oauthRefreshToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
110
|
+
oauthAccessToken: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
111
|
+
oauthExpiresAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
112
|
+
projectId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
113
|
+
organizationId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
12
114
|
}>>;
|
|
13
|
-
export type CredentialRow = typeof
|
|
14
|
-
export type CredentialInsert = typeof
|
|
15
|
-
export type CredentialUpdate = typeof
|
|
115
|
+
export type CredentialRow = typeof credentialResource.$inferSelect;
|
|
116
|
+
export type CredentialInsert = typeof credentialResource.$inferInsert;
|
|
117
|
+
export type CredentialUpdate = typeof credentialResource.$inferUpdate;
|
|
118
|
+
export type ApiKeyCredentialRow = typeof apiKeyCredentialResource.$inferSelect;
|
|
119
|
+
export type ApiKeyCredentialInsert = typeof apiKeyCredentialResource.$inferInsert;
|
|
120
|
+
export type ApiKeyCredentialUpdate = typeof apiKeyCredentialResource.$inferUpdate;
|
|
121
|
+
export type OAuthCredentialRow = typeof oauthCredentialResource.$inferSelect;
|
|
122
|
+
export type OAuthCredentialInsert = typeof oauthCredentialResource.$inferInsert;
|
|
123
|
+
export type OAuthCredentialUpdate = typeof oauthCredentialResource.$inferUpdate;
|
|
@@ -1,19 +1,32 @@
|
|
|
1
|
-
import { id, integer, podTable, string, timestamp, uri } from "@undefineds.co/drizzle-solid";
|
|
1
|
+
import { boolean, id, integer, podTable, string, timestamp, uri } from "@undefineds.co/drizzle-solid";
|
|
2
2
|
import { XPOD_CREDENTIAL } from "./namespaces.js";
|
|
3
|
-
export const
|
|
3
|
+
export const credentialResource = podTable("credential", {
|
|
4
4
|
id: id("id"),
|
|
5
5
|
provider: uri("provider").predicate(XPOD_CREDENTIAL.provider).link("aiProvider"),
|
|
6
6
|
service: string("service").predicate(XPOD_CREDENTIAL.service).notNull().default("ai"),
|
|
7
7
|
status: string("status").predicate(XPOD_CREDENTIAL.status).notNull().default("active"),
|
|
8
8
|
apiKey: string("apiKey").predicate(XPOD_CREDENTIAL.apiKey),
|
|
9
9
|
baseUrl: string("baseUrl").predicate(XPOD_CREDENTIAL.baseUrl),
|
|
10
|
+
proxyUrl: string("proxyUrl").predicate(XPOD_CREDENTIAL.proxyUrl),
|
|
10
11
|
label: string("label").predicate(XPOD_CREDENTIAL.label),
|
|
12
|
+
isDefault: boolean("isDefault").predicate(XPOD_CREDENTIAL.isDefault).default(false),
|
|
11
13
|
lastUsedAt: timestamp("lastUsedAt").predicate(XPOD_CREDENTIAL.lastUsedAt),
|
|
12
14
|
failCount: integer("failCount").predicate(XPOD_CREDENTIAL.failCount).default(0),
|
|
13
15
|
rateLimitResetAt: timestamp("rateLimitResetAt").predicate(XPOD_CREDENTIAL.rateLimitResetAt),
|
|
16
|
+
oauthRefreshToken: string("oauthRefreshToken").predicate(XPOD_CREDENTIAL.oauthRefreshToken),
|
|
17
|
+
oauthAccessToken: string("oauthAccessToken").predicate(XPOD_CREDENTIAL.oauthAccessToken),
|
|
18
|
+
oauthExpiresAt: timestamp("oauthExpiresAt").predicate(XPOD_CREDENTIAL.oauthExpiresAt),
|
|
19
|
+
projectId: string("projectId").predicate(XPOD_CREDENTIAL.projectId),
|
|
20
|
+
organizationId: string("organizationId").predicate(XPOD_CREDENTIAL.organizationId),
|
|
14
21
|
}, {
|
|
15
22
|
base: "/settings/credentials.ttl",
|
|
16
23
|
type: XPOD_CREDENTIAL.Credential,
|
|
17
24
|
namespace: XPOD_CREDENTIAL,
|
|
18
25
|
subjectTemplate: "#{id}",
|
|
19
26
|
});
|
|
27
|
+
// Compatibility aliases. New model code should prefer `credentialResource`.
|
|
28
|
+
export const credentialTable = credentialResource;
|
|
29
|
+
export const apiKeyCredentialResource = credentialResource;
|
|
30
|
+
export const apiKeyCredentialTable = credentialResource;
|
|
31
|
+
export const oauthCredentialResource = credentialResource;
|
|
32
|
+
export const oauthCredentialTable = credentialResource;
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Favorite
|
|
2
|
+
* Favorite resource
|
|
3
3
|
* 收藏项 - 基于 Solid Pod 存储
|
|
4
4
|
*
|
|
5
5
|
* 支持收藏:Chat, Thread, Contact, Message 等
|
|
6
6
|
* favoriteType 使用 RDF type URI 标识实体类型
|
|
7
7
|
*/
|
|
8
|
+
export declare const favoriteResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
9
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
10
|
+
targetType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
11
|
+
targetUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
12
|
+
title: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
13
|
+
snapshotContent: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
14
|
+
snapshotAuthor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
15
|
+
sourceModule: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
16
|
+
sourceId: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
17
|
+
searchText: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
18
|
+
snapshotMeta: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
19
|
+
favoredAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
20
|
+
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
21
|
+
}>>;
|
|
8
22
|
export declare const favoriteTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
9
23
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
10
24
|
targetType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
@@ -19,6 +33,6 @@ export declare const favoriteTable: import("@undefineds.co/drizzle-solid/dist/co
|
|
|
19
33
|
favoredAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
20
34
|
updatedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
21
35
|
}>>;
|
|
22
|
-
export type FavoriteRow = typeof
|
|
23
|
-
export type FavoriteInsert = typeof
|
|
24
|
-
export type FavoriteUpdate = typeof
|
|
36
|
+
export type FavoriteRow = typeof favoriteResource.$inferSelect;
|
|
37
|
+
export type FavoriteInsert = typeof favoriteResource.$inferInsert;
|
|
38
|
+
export type FavoriteUpdate = typeof favoriteResource.$inferUpdate;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { podTable, string, timestamp, text, id, uri } from "@undefineds.co/drizzle-solid";
|
|
2
2
|
import { UDFS, DCTerms, SCHEMA, RDF } from "../namespaces.js";
|
|
3
3
|
/**
|
|
4
|
-
* Favorite
|
|
4
|
+
* Favorite resource
|
|
5
5
|
* 收藏项 - 基于 Solid Pod 存储
|
|
6
6
|
*
|
|
7
7
|
* 支持收藏:Chat, Thread, Contact, Message 等
|
|
8
8
|
* favoriteType 使用 RDF type URI 标识实体类型
|
|
9
9
|
*/
|
|
10
|
-
export const
|
|
10
|
+
export const favoriteResource = podTable("favorite", {
|
|
11
11
|
id: id("id"),
|
|
12
12
|
// 收藏目标
|
|
13
13
|
targetType: uri("targetType").predicate(RDF.type).notNull(), // RDF type URI (e.g., MEETING.LongChat)
|
|
@@ -32,3 +32,5 @@ export const favoriteTable = podTable("favorite", {
|
|
|
32
32
|
type: SCHEMA.CreativeWork,
|
|
33
33
|
namespace: UDFS,
|
|
34
34
|
});
|
|
35
|
+
// Compatibility alias. New model code should prefer `favoriteResource`.
|
|
36
|
+
export const favoriteTable = favoriteResource;
|
package/dist/favorite/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { favoriteTable, type FavoriteRow, type FavoriteInsert, type FavoriteUpdate } from "./favorite.schema";
|
|
1
|
+
export { favoriteResource, favoriteTable, type FavoriteRow, type FavoriteInsert, type FavoriteUpdate } from "./favorite.schema";
|
|
2
2
|
export { createStarredSyncHook, registerDbForStarredSync, chatStarredSyncHook, threadStarredSyncHook, contactStarredSyncHook, chatSnapshotExtractor, threadSnapshotExtractor, contactSnapshotExtractor, type SnapshotExtractor, type StarredSyncConfig, type SourceModule, } from "./starred-sync";
|
package/dist/favorite/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Starred Sync Hook
|
|
3
3
|
*
|
|
4
|
-
* 当实体的 starred 字段变更时,自动同步到
|
|
4
|
+
* 当实体的 starred 字段变更时,自动同步到 favoriteResource:
|
|
5
5
|
* - starred: true → 创建 Favorite 记录
|
|
6
6
|
* - starred: false → 删除 Favorite 记录
|
|
7
7
|
*
|
|
@@ -37,7 +37,7 @@ export interface StarredSyncConfig<T = Record<string, unknown>> {
|
|
|
37
37
|
* 创建 starred 同步 hook
|
|
38
38
|
*
|
|
39
39
|
* @example
|
|
40
|
-
* const
|
|
40
|
+
* const chatResource = podTable('chats', columns, {
|
|
41
41
|
* hooks: createStarredSyncHook({
|
|
42
42
|
* rdfType: MEETING.LongChat,
|
|
43
43
|
* extractor: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { favoriteResource } from './favorite.schema.js';
|
|
2
2
|
import { MEETING, SIOC } from '../namespaces.js';
|
|
3
3
|
import { VCARD } from '@inrupt/vocab-common-rdf';
|
|
4
4
|
// ============================================================================
|
|
@@ -34,7 +34,7 @@ async function createFavorite(_ctx, config, record) {
|
|
|
34
34
|
try {
|
|
35
35
|
const db = getDbInstance();
|
|
36
36
|
if (db) {
|
|
37
|
-
await db.insert(
|
|
37
|
+
await db.insert(favoriteResource).values(favoriteData).execute();
|
|
38
38
|
console.log(`[StarredSync] Created favorite: ${rdfType} → ${targetUri}`);
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
@@ -54,7 +54,7 @@ async function deleteFavorite(_ctx, targetUri) {
|
|
|
54
54
|
try {
|
|
55
55
|
const db = getDbInstance();
|
|
56
56
|
if (db) {
|
|
57
|
-
await db.delete(
|
|
57
|
+
await db.delete(favoriteResource)
|
|
58
58
|
.where({ targetUri })
|
|
59
59
|
.execute();
|
|
60
60
|
console.log(`[StarredSync] Deleted favorite: ${targetUri}`);
|
|
@@ -71,7 +71,7 @@ async function deleteFavorite(_ctx, targetUri) {
|
|
|
71
71
|
* 创建 starred 同步 hook
|
|
72
72
|
*
|
|
73
73
|
* @example
|
|
74
|
-
* const
|
|
74
|
+
* const chatResource = podTable('chats', columns, {
|
|
75
75
|
* hooks: createStarredSyncHook({
|
|
76
76
|
* rdfType: MEETING.LongChat,
|
|
77
77
|
* extractor: {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 标签、索引等元数据功能由 xpod sidecar 提供。
|
|
4
4
|
* 此 schema 将在未来版本中移除。
|
|
5
5
|
*
|
|
6
|
-
* File
|
|
6
|
+
* File resource
|
|
7
7
|
* 文件管理模型 - 基于 Solid Pod 存储
|
|
8
8
|
*
|
|
9
9
|
* 参考标准:
|
|
@@ -11,8 +11,29 @@
|
|
|
11
11
|
* - Schema.org CreativeWork
|
|
12
12
|
* - LDP NonRDFSource (实际文件)
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* 注意:此 resource 存储文件元数据,实际文件内容存储在 Pod 的文件系统中
|
|
15
15
|
*/
|
|
16
|
+
export declare const fileResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
17
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
18
|
+
name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
19
|
+
description: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
20
|
+
mimeType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
21
|
+
size: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"integer", null, true, false>;
|
|
22
|
+
hash: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
23
|
+
podUri: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
24
|
+
localPath: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
25
|
+
syncStatus: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, true>;
|
|
26
|
+
lastSyncedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
27
|
+
owner: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
28
|
+
sharedWith: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
29
|
+
folder: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
30
|
+
tags: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, false, false>;
|
|
31
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
32
|
+
modifiedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
33
|
+
deletedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
34
|
+
starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
35
|
+
pinnedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
36
|
+
}>>;
|
|
16
37
|
export declare const fileTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
17
38
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
18
39
|
name: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"string", null, true, false>;
|
|
@@ -34,6 +55,6 @@ export declare const fileTable: import("@undefineds.co/drizzle-solid/dist/core/s
|
|
|
34
55
|
starred: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"boolean", null, false, true>;
|
|
35
56
|
pinnedAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, false, false>;
|
|
36
57
|
}>>;
|
|
37
|
-
export type FileRow = typeof
|
|
38
|
-
export type FileInsert = typeof
|
|
39
|
-
export type FileUpdate = typeof
|
|
58
|
+
export type FileRow = typeof fileResource.$inferSelect;
|
|
59
|
+
export type FileInsert = typeof fileResource.$inferInsert;
|
|
60
|
+
export type FileUpdate = typeof fileResource.$inferUpdate;
|
package/dist/file/file.schema.js
CHANGED
|
@@ -5,7 +5,7 @@ import { UDFS, DCTerms, SCHEMA } from "../namespaces.js";
|
|
|
5
5
|
* 标签、索引等元数据功能由 xpod sidecar 提供。
|
|
6
6
|
* 此 schema 将在未来版本中移除。
|
|
7
7
|
*
|
|
8
|
-
* File
|
|
8
|
+
* File resource
|
|
9
9
|
* 文件管理模型 - 基于 Solid Pod 存储
|
|
10
10
|
*
|
|
11
11
|
* 参考标准:
|
|
@@ -13,9 +13,9 @@ import { UDFS, DCTerms, SCHEMA } from "../namespaces.js";
|
|
|
13
13
|
* - Schema.org CreativeWork
|
|
14
14
|
* - LDP NonRDFSource (实际文件)
|
|
15
15
|
*
|
|
16
|
-
*
|
|
16
|
+
* 注意:此 resource 存储文件元数据,实际文件内容存储在 Pod 的文件系统中
|
|
17
17
|
*/
|
|
18
|
-
export const
|
|
18
|
+
export const fileResource = podTable("file", {
|
|
19
19
|
// 基础信息
|
|
20
20
|
id: id("id"),
|
|
21
21
|
name: string("name").predicate(SCHEMA.name).notNull(), // 文件名
|
|
@@ -49,3 +49,5 @@ export const fileTable = podTable("file", {
|
|
|
49
49
|
type: SCHEMA.MediaObject,
|
|
50
50
|
namespace: UDFS,
|
|
51
51
|
});
|
|
52
|
+
// Compatibility alias. New model code should prefer `fileResource`.
|
|
53
|
+
export const fileTable = fileResource;
|
package/dist/file/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { fileTable, type FileRow, type FileInsert, type FileUpdate } from "./file.schema";
|
|
1
|
+
export { fileResource, fileTable, type FileRow, type FileInsert, type FileUpdate } from "./file.schema";
|
package/dist/file/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { fileTable } from "./file.schema.js";
|
|
1
|
+
export { fileResource, fileTable } from "./file.schema.js";
|
package/dist/grant.schema.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare function buildGrantSubjectPath(grantId: string): string;
|
|
1
2
|
export declare const grantResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
3
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
4
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
package/dist/grant.schema.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { podTable, uri, string, text, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { RDF, ODRL, UDFS, DCTerms } from './namespaces.js';
|
|
3
|
+
export function buildGrantSubjectPath(grantId) {
|
|
4
|
+
return `/settings/autonomy/grants/${encodeURIComponent(grantId)}.ttl`;
|
|
5
|
+
}
|
|
3
6
|
// Persistent delegation grant resource generated by "do not ask again" decisions.
|
|
4
7
|
// This is the durable "delegation" layer (distinct from one-off approvals and append-only audit entries).
|
|
5
8
|
export const grantResource = podTable('grant', {
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
export declare const inboxNotificationResource: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
|
+
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
|
+
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
4
|
+
actor: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, false, false>;
|
|
5
|
+
object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
6
|
+
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
7
|
+
}>>;
|
|
1
8
|
export declare const inboxNotificationTable: import("@undefineds.co/drizzle-solid/dist/core/schema").PodTableWithColumns<import("@undefineds.co/drizzle-solid/dist/core/schema").ResolvedColumns<{
|
|
2
9
|
id: import("@undefineds.co/drizzle-solid/dist/core/schema").PodStringColumn<false, false>;
|
|
3
10
|
rdfType: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"array", "uri", true, true>;
|
|
@@ -5,6 +12,6 @@ export declare const inboxNotificationTable: import("@undefineds.co/drizzle-soli
|
|
|
5
12
|
object: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"uri", null, true, false>;
|
|
6
13
|
createdAt: import("@undefineds.co/drizzle-solid/dist/core/schema").ColumnBuilder<"datetime", null, true, true>;
|
|
7
14
|
}>>;
|
|
8
|
-
export type InboxNotificationRow = typeof
|
|
9
|
-
export type InboxNotificationInsert = typeof
|
|
10
|
-
export type InboxNotificationUpdate = typeof
|
|
15
|
+
export type InboxNotificationRow = typeof inboxNotificationResource.$inferSelect;
|
|
16
|
+
export type InboxNotificationInsert = typeof inboxNotificationResource.$inferInsert;
|
|
17
|
+
export type InboxNotificationUpdate = typeof inboxNotificationResource.$inferUpdate;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { podTable, uri, timestamp, id } from '@undefineds.co/drizzle-solid';
|
|
2
2
|
import { AS, DCTerms, RDF } from './namespaces.js';
|
|
3
3
|
// Solid inbox notifications (protocol channel)
|
|
4
|
-
export const
|
|
4
|
+
export const inboxNotificationResource = podTable('inbox_notification', {
|
|
5
5
|
id: id('id'),
|
|
6
6
|
// Protocol inbox messages are not always Announce. Keep rdf:type writable so
|
|
7
7
|
// app notifications can use as:Announce while other Solid inbox payloads keep their own type.
|
|
@@ -17,3 +17,5 @@ export const inboxNotificationTable = podTable('inbox_notification', {
|
|
|
17
17
|
namespace: AS,
|
|
18
18
|
subjectTemplate: '{id}.ttl',
|
|
19
19
|
});
|
|
20
|
+
// Compatibility alias. New model code should prefer `inboxNotificationResource`.
|
|
21
|
+
export const inboxNotificationTable = inboxNotificationResource;
|