atmo.rsvp
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

commit

+347 -131
+6 -4
lexicons-generated/rsvp/atmo/permissionSet.json
··· 20 20 "rsvp.atmo.notifyOfUpdate", 21 21 "rsvp.atmo.rsvp.getRecord", 22 22 "rsvp.atmo.rsvp.listRecords", 23 - "rsvp.atmo.space.admin.addMember", 24 - "rsvp.atmo.space.admin.createSpace", 25 - "rsvp.atmo.space.admin.removeMember", 23 + "rsvp.atmo.space.addMember", 24 + "rsvp.atmo.space.createSpace", 26 25 "rsvp.atmo.space.deleteRecord", 27 26 "rsvp.atmo.space.getRecord", 28 27 "rsvp.atmo.space.getSpace", ··· 30 29 "rsvp.atmo.space.invite.list", 31 30 "rsvp.atmo.space.invite.redeem", 32 31 "rsvp.atmo.space.invite.revoke", 32 + "rsvp.atmo.space.leaveSpace", 33 33 "rsvp.atmo.space.listMembers", 34 34 "rsvp.atmo.space.listRecords", 35 35 "rsvp.atmo.space.listSpaces", 36 - "rsvp.atmo.space.putRecord" 36 + "rsvp.atmo.space.putRecord", 37 + "rsvp.atmo.space.removeMember", 38 + "rsvp.atmo.space.whoami" 37 39 ] 38 40 } 39 41 ]
+1 -1
lexicons-generated/rsvp/atmo/space/admin/addMember.json lexicons-generated/rsvp/atmo/space/addMember.json
··· 1 1 { 2 2 "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.addMember", 3 + "id": "rsvp.atmo.space.addMember", 4 4 "defs": { 5 5 "main": { 6 6 "type": "procedure",
+1 -1
lexicons-generated/rsvp/atmo/space/admin/createSpace.json lexicons-generated/rsvp/atmo/space/createSpace.json
··· 1 1 { 2 2 "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.createSpace", 3 + "id": "rsvp.atmo.space.createSpace", 4 4 "defs": { 5 5 "main": { 6 6 "type": "procedure",
+1 -1
lexicons-generated/rsvp/atmo/space/admin/removeMember.json lexicons-generated/rsvp/atmo/space/removeMember.json
··· 1 1 { 2 2 "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.removeMember", 3 + "id": "rsvp.atmo.space.removeMember", 4 4 "defs": { 5 5 "main": { 6 6 "type": "procedure",
+48
lexicons-generated/rsvp/atmo/space/leaveSpace.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.leaveSpace", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Remove the caller from a space's member list. The owner cannot leave — they must delete the space instead.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": [ 13 + "spaceUri" 14 + ], 15 + "properties": { 16 + "spaceUri": { 17 + "type": "string", 18 + "format": "at-uri" 19 + } 20 + } 21 + } 22 + }, 23 + "output": { 24 + "encoding": "application/json", 25 + "schema": { 26 + "type": "object", 27 + "required": [ 28 + "ok" 29 + ], 30 + "properties": { 31 + "ok": { 32 + "type": "boolean" 33 + } 34 + } 35 + } 36 + }, 37 + "errors": [ 38 + { 39 + "name": "NotFound" 40 + }, 41 + { 42 + "name": "InvalidRequest", 43 + "description": "Raised if the caller is the space owner." 44 + } 45 + ] 46 + } 47 + } 48 + }
+53
lexicons-generated/rsvp/atmo/space/whoami.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.whoami", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "Report the caller's relationship to a space: whether they are the owner, a member, and at what permission level. Useful for clients to avoid a listMembers roundtrip.", 8 + "parameters": { 9 + "type": "params", 10 + "required": [ 11 + "spaceUri" 12 + ], 13 + "properties": { 14 + "spaceUri": { 15 + "type": "string", 16 + "format": "at-uri" 17 + } 18 + } 19 + }, 20 + "output": { 21 + "encoding": "application/json", 22 + "schema": { 23 + "type": "object", 24 + "required": [ 25 + "isOwner", 26 + "isMember" 27 + ], 28 + "properties": { 29 + "isOwner": { 30 + "type": "boolean" 31 + }, 32 + "isMember": { 33 + "type": "boolean" 34 + }, 35 + "perms": { 36 + "type": "string", 37 + "knownValues": [ 38 + "read", 39 + "write" 40 + ], 41 + "description": "Present only when the caller is a member or the owner." 42 + } 43 + } 44 + } 45 + }, 46 + "errors": [ 47 + { 48 + "name": "NotFound" 49 + } 50 + ] 51 + } 52 + } 53 + }
+1 -1
package.json
··· 61 61 "dependencies": { 62 62 "@atcute/bluesky-richtext-parser": "^2.1.1", 63 63 "@atcute/jetstream": "^1.1.2", 64 - "@atmo-dev/contrail": "^0.1.0", 64 + "@atmo-dev/contrail": "^0.1.1", 65 65 "@ethercorps/sveltekit-og": "^4.2.1", 66 66 "@foxui/colors": "^0.8.4", 67 67 "@foxui/core": "^0.9.0",
+5 -5
pnpm-lock.yaml
··· 15 15 specifier: ^1.1.2 16 16 version: 1.1.2 17 17 '@atmo-dev/contrail': 18 - specifier: ^0.1.0 19 - version: 0.1.0 18 + specifier: ^0.1.1 19 + version: 0.1.1 20 20 '@ethercorps/sveltekit-og': 21 21 specifier: ^4.2.1 22 22 version: 4.2.1(@sveltejs/kit@2.55.0(@sveltejs/vite-plugin-svelte@7.0.0(svelte@5.55.0)(vite@8.0.3(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0)))(svelte@5.55.0)(typescript@6.0.2)(vite@8.0.3(@types/node@25.0.10)(esbuild@0.27.4)(jiti@2.6.1)(tsx@4.21.0))) ··· 270 270 '@atcute/xrpc-server@0.1.12': 271 271 resolution: {integrity: sha512-70KIerQlljp5+s6t0u6YNN9klEboQUZa2hhoi/hmXIO1cIKEORettTMctnyjfcCJaSfAuj42dxPu51GTZBlm8w==} 272 272 273 - '@atmo-dev/contrail@0.1.0': 274 - resolution: {integrity: sha512-YTOZbdReiVYCE+F1b71PUgDJSRDZD38ZjZweNa14o38uQt17XBEherQ+2z8IYnfB+CGAFJ1ln6O0R7sAIo0vIA==} 273 + '@atmo-dev/contrail@0.1.1': 274 + resolution: {integrity: sha512-7BdLYjHHGC2EKlT/p3KszJAE6Pv1FPPuLVG+eYRpXSTF6iwrk/FVA0Dep7lTowbLlo5mQBpbEpo2CrQtUZAPfQ==} 275 275 peerDependencies: 276 276 pg: ^8.0.0 277 277 peerDependenciesMeta: ··· 3127 3127 '@badrap/valita': 0.4.6 3128 3128 nanoid: 5.1.7 3129 3129 3130 - '@atmo-dev/contrail@0.1.0': 3130 + '@atmo-dev/contrail@0.1.1': 3131 3131 dependencies: 3132 3132 '@atcute/atproto': 3.1.10 3133 3133 '@atcute/client': 4.2.1
+5 -3
src/lexicon-types/index.ts
··· 13 13 export * as RsvpAtmoNotifyOfUpdate from "./types/rsvp/atmo/notifyOfUpdate.js"; 14 14 export * as RsvpAtmoRsvpGetRecord from "./types/rsvp/atmo/rsvp/getRecord.js"; 15 15 export * as RsvpAtmoRsvpListRecords from "./types/rsvp/atmo/rsvp/listRecords.js"; 16 - export * as RsvpAtmoSpaceAdminAddMember from "./types/rsvp/atmo/space/admin/addMember.js"; 17 - export * as RsvpAtmoSpaceAdminCreateSpace from "./types/rsvp/atmo/space/admin/createSpace.js"; 18 - export * as RsvpAtmoSpaceAdminRemoveMember from "./types/rsvp/atmo/space/admin/removeMember.js"; 16 + export * as RsvpAtmoSpaceAddMember from "./types/rsvp/atmo/space/addMember.js"; 17 + export * as RsvpAtmoSpaceCreateSpace from "./types/rsvp/atmo/space/createSpace.js"; 19 18 export * as RsvpAtmoSpaceDefs from "./types/rsvp/atmo/space/defs.js"; 20 19 export * as RsvpAtmoSpaceDeleteRecord from "./types/rsvp/atmo/space/deleteRecord.js"; 21 20 export * as RsvpAtmoSpaceGetRecord from "./types/rsvp/atmo/space/getRecord.js"; ··· 24 23 export * as RsvpAtmoSpaceInviteList from "./types/rsvp/atmo/space/invite/list.js"; 25 24 export * as RsvpAtmoSpaceInviteRedeem from "./types/rsvp/atmo/space/invite/redeem.js"; 26 25 export * as RsvpAtmoSpaceInviteRevoke from "./types/rsvp/atmo/space/invite/revoke.js"; 26 + export * as RsvpAtmoSpaceLeaveSpace from "./types/rsvp/atmo/space/leaveSpace.js"; 27 27 export * as RsvpAtmoSpaceListMembers from "./types/rsvp/atmo/space/listMembers.js"; 28 28 export * as RsvpAtmoSpaceListRecords from "./types/rsvp/atmo/space/listRecords.js"; 29 29 export * as RsvpAtmoSpaceListSpaces from "./types/rsvp/atmo/space/listSpaces.js"; 30 30 export * as RsvpAtmoSpacePutRecord from "./types/rsvp/atmo/space/putRecord.js"; 31 + export * as RsvpAtmoSpaceRemoveMember from "./types/rsvp/atmo/space/removeMember.js"; 32 + export * as RsvpAtmoSpaceWhoami from "./types/rsvp/atmo/space/whoami.js";
+43
src/lexicon-types/types/rsvp/atmo/space/addMember.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.procedure("rsvp.atmo.space.addMember", { 6 + params: null, 7 + input: { 8 + type: "lex", 9 + schema: /*#__PURE__*/ v.object({ 10 + did: /*#__PURE__*/ v.didString(), 11 + /** 12 + * @default "write" 13 + */ 14 + perms: /*#__PURE__*/ v.optional( 15 + /*#__PURE__*/ v.string<"read" | "write" | (string & {})>(), 16 + "write", 17 + ), 18 + spaceUri: /*#__PURE__*/ v.resourceUriString(), 19 + }), 20 + }, 21 + output: { 22 + type: "lex", 23 + schema: /*#__PURE__*/ v.object({ 24 + ok: /*#__PURE__*/ v.boolean(), 25 + }), 26 + }, 27 + }); 28 + 29 + type main$schematype = typeof _mainSchema; 30 + 31 + export interface mainSchema extends main$schematype {} 32 + 33 + export const mainSchema = _mainSchema as mainSchema; 34 + 35 + export interface $params {} 36 + export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 37 + export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 38 + 39 + declare module "@atcute/lexicons/ambient" { 40 + interface XRPCProcedures { 41 + "rsvp.atmo.space.addMember": mainSchema; 42 + } 43 + }
-46
src/lexicon-types/types/rsvp/atmo/space/admin/addMember.ts
··· 1 - import type {} from "@atcute/lexicons"; 2 - import * as v from "@atcute/lexicons/validations"; 3 - import type {} from "@atcute/lexicons/ambient"; 4 - 5 - const _mainSchema = /*#__PURE__*/ v.procedure( 6 - "rsvp.atmo.space.admin.addMember", 7 - { 8 - params: null, 9 - input: { 10 - type: "lex", 11 - schema: /*#__PURE__*/ v.object({ 12 - did: /*#__PURE__*/ v.didString(), 13 - /** 14 - * @default "write" 15 - */ 16 - perms: /*#__PURE__*/ v.optional( 17 - /*#__PURE__*/ v.string<"read" | "write" | (string & {})>(), 18 - "write", 19 - ), 20 - spaceUri: /*#__PURE__*/ v.resourceUriString(), 21 - }), 22 - }, 23 - output: { 24 - type: "lex", 25 - schema: /*#__PURE__*/ v.object({ 26 - ok: /*#__PURE__*/ v.boolean(), 27 - }), 28 - }, 29 - }, 30 - ); 31 - 32 - type main$schematype = typeof _mainSchema; 33 - 34 - export interface mainSchema extends main$schematype {} 35 - 36 - export const mainSchema = _mainSchema as mainSchema; 37 - 38 - export interface $params {} 39 - export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 40 - export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 41 - 42 - declare module "@atcute/lexicons/ambient" { 43 - interface XRPCProcedures { 44 - "rsvp.atmo.space.admin.addMember": mainSchema; 45 - } 46 - }
-57
src/lexicon-types/types/rsvp/atmo/space/admin/createSpace.ts
··· 1 - import type {} from "@atcute/lexicons"; 2 - import * as v from "@atcute/lexicons/validations"; 3 - import type {} from "@atcute/lexicons/ambient"; 4 - import * as RsvpAtmoSpaceDefs from "../defs.js"; 5 - 6 - const _mainSchema = /*#__PURE__*/ v.procedure( 7 - "rsvp.atmo.space.admin.createSpace", 8 - { 9 - params: null, 10 - input: { 11 - type: "lex", 12 - schema: /*#__PURE__*/ v.object({ 13 - get appPolicy() { 14 - return /*#__PURE__*/ v.optional(RsvpAtmoSpaceDefs.appPolicySchema); 15 - }, 16 - appPolicyRef: /*#__PURE__*/ v.optional( 17 - /*#__PURE__*/ v.resourceUriString(), 18 - ), 19 - /** 20 - * Space key. Auto-generated (TID) if omitted. 21 - */ 22 - key: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()), 23 - memberListRef: /*#__PURE__*/ v.optional( 24 - /*#__PURE__*/ v.resourceUriString(), 25 - ), 26 - /** 27 - * Space type NSID. Defaults to the service's configured type. 28 - */ 29 - type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.nsidString()), 30 - }), 31 - }, 32 - output: { 33 - type: "lex", 34 - schema: /*#__PURE__*/ v.object({ 35 - get space() { 36 - return RsvpAtmoSpaceDefs.spaceViewSchema; 37 - }, 38 - }), 39 - }, 40 - }, 41 - ); 42 - 43 - type main$schematype = typeof _mainSchema; 44 - 45 - export interface mainSchema extends main$schematype {} 46 - 47 - export const mainSchema = _mainSchema as mainSchema; 48 - 49 - export interface $params {} 50 - export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 51 - export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 52 - 53 - declare module "@atcute/lexicons/ambient" { 54 - interface XRPCProcedures { 55 - "rsvp.atmo.space.admin.createSpace": mainSchema; 56 - } 57 - }
+7 -4
src/lexicon-types/types/rsvp/atmo/space/admin/removeMember.ts src/lexicon-types/types/rsvp/atmo/space/transferOwnership.ts
··· 1 1 import type {} from "@atcute/lexicons"; 2 2 import * as v from "@atcute/lexicons/validations"; 3 3 import type {} from "@atcute/lexicons/ambient"; 4 + import * as RsvpAtmoSpaceDefs from "./defs.js"; 4 5 5 6 const _mainSchema = /*#__PURE__*/ v.procedure( 6 - "rsvp.atmo.space.admin.removeMember", 7 + "rsvp.atmo.space.transferOwnership", 7 8 { 8 9 params: null, 9 10 input: { 10 11 type: "lex", 11 12 schema: /*#__PURE__*/ v.object({ 12 - did: /*#__PURE__*/ v.didString(), 13 + newOwnerDid: /*#__PURE__*/ v.didString(), 13 14 spaceUri: /*#__PURE__*/ v.resourceUriString(), 14 15 }), 15 16 }, 16 17 output: { 17 18 type: "lex", 18 19 schema: /*#__PURE__*/ v.object({ 19 - ok: /*#__PURE__*/ v.boolean(), 20 + get space() { 21 + return RsvpAtmoSpaceDefs.spaceViewSchema; 22 + }, 20 23 }), 21 24 }, 22 25 }, ··· 34 37 35 38 declare module "@atcute/lexicons/ambient" { 36 39 interface XRPCProcedures { 37 - "rsvp.atmo.space.admin.removeMember": mainSchema; 40 + "rsvp.atmo.space.transferOwnership": mainSchema; 38 41 } 39 42 }
+54
src/lexicon-types/types/rsvp/atmo/space/createSpace.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + import * as RsvpAtmoSpaceDefs from "./defs.js"; 5 + 6 + const _mainSchema = /*#__PURE__*/ v.procedure("rsvp.atmo.space.createSpace", { 7 + params: null, 8 + input: { 9 + type: "lex", 10 + schema: /*#__PURE__*/ v.object({ 11 + get appPolicy() { 12 + return /*#__PURE__*/ v.optional(RsvpAtmoSpaceDefs.appPolicySchema); 13 + }, 14 + appPolicyRef: /*#__PURE__*/ v.optional( 15 + /*#__PURE__*/ v.resourceUriString(), 16 + ), 17 + /** 18 + * Space key. Auto-generated (TID) if omitted. 19 + */ 20 + key: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.string()), 21 + memberListRef: /*#__PURE__*/ v.optional( 22 + /*#__PURE__*/ v.resourceUriString(), 23 + ), 24 + /** 25 + * Space type NSID. Defaults to the service's configured type. 26 + */ 27 + type: /*#__PURE__*/ v.optional(/*#__PURE__*/ v.nsidString()), 28 + }), 29 + }, 30 + output: { 31 + type: "lex", 32 + schema: /*#__PURE__*/ v.object({ 33 + get space() { 34 + return RsvpAtmoSpaceDefs.spaceViewSchema; 35 + }, 36 + }), 37 + }, 38 + }); 39 + 40 + type main$schematype = typeof _mainSchema; 41 + 42 + export interface mainSchema extends main$schematype {} 43 + 44 + export const mainSchema = _mainSchema as mainSchema; 45 + 46 + export interface $params {} 47 + export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 48 + export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 49 + 50 + declare module "@atcute/lexicons/ambient" { 51 + interface XRPCProcedures { 52 + "rsvp.atmo.space.createSpace": mainSchema; 53 + } 54 + }
+35
src/lexicon-types/types/rsvp/atmo/space/leaveSpace.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.procedure("rsvp.atmo.space.leaveSpace", { 6 + params: null, 7 + input: { 8 + type: "lex", 9 + schema: /*#__PURE__*/ v.object({ 10 + spaceUri: /*#__PURE__*/ v.resourceUriString(), 11 + }), 12 + }, 13 + output: { 14 + type: "lex", 15 + schema: /*#__PURE__*/ v.object({ 16 + ok: /*#__PURE__*/ v.boolean(), 17 + }), 18 + }, 19 + }); 20 + 21 + type main$schematype = typeof _mainSchema; 22 + 23 + export interface mainSchema extends main$schematype {} 24 + 25 + export const mainSchema = _mainSchema as mainSchema; 26 + 27 + export interface $params {} 28 + export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 29 + export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 30 + 31 + declare module "@atcute/lexicons/ambient" { 32 + interface XRPCProcedures { 33 + "rsvp.atmo.space.leaveSpace": mainSchema; 34 + } 35 + }
+36
src/lexicon-types/types/rsvp/atmo/space/removeMember.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.procedure("rsvp.atmo.space.removeMember", { 6 + params: null, 7 + input: { 8 + type: "lex", 9 + schema: /*#__PURE__*/ v.object({ 10 + did: /*#__PURE__*/ v.didString(), 11 + spaceUri: /*#__PURE__*/ v.resourceUriString(), 12 + }), 13 + }, 14 + output: { 15 + type: "lex", 16 + schema: /*#__PURE__*/ v.object({ 17 + ok: /*#__PURE__*/ v.boolean(), 18 + }), 19 + }, 20 + }); 21 + 22 + type main$schematype = typeof _mainSchema; 23 + 24 + export interface mainSchema extends main$schematype {} 25 + 26 + export const mainSchema = _mainSchema as mainSchema; 27 + 28 + export interface $params {} 29 + export interface $input extends v.InferXRPCBodyInput<mainSchema["input"]> {} 30 + export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 31 + 32 + declare module "@atcute/lexicons/ambient" { 33 + interface XRPCProcedures { 34 + "rsvp.atmo.space.removeMember": mainSchema; 35 + } 36 + }
+37
src/lexicon-types/types/rsvp/atmo/space/whoami.ts
··· 1 + import type {} from "@atcute/lexicons"; 2 + import * as v from "@atcute/lexicons/validations"; 3 + import type {} from "@atcute/lexicons/ambient"; 4 + 5 + const _mainSchema = /*#__PURE__*/ v.query("rsvp.atmo.space.whoami", { 6 + params: /*#__PURE__*/ v.object({ 7 + spaceUri: /*#__PURE__*/ v.resourceUriString(), 8 + }), 9 + output: { 10 + type: "lex", 11 + schema: /*#__PURE__*/ v.object({ 12 + isMember: /*#__PURE__*/ v.boolean(), 13 + isOwner: /*#__PURE__*/ v.boolean(), 14 + /** 15 + * Present only when the caller is a member or the owner. 16 + */ 17 + perms: /*#__PURE__*/ v.optional( 18 + /*#__PURE__*/ v.string<"read" | "write" | (string & {})>(), 19 + ), 20 + }), 21 + }, 22 + }); 23 + 24 + type main$schematype = typeof _mainSchema; 25 + 26 + export interface mainSchema extends main$schematype {} 27 + 28 + export const mainSchema = _mainSchema as mainSchema; 29 + 30 + export interface $params extends v.InferInput<mainSchema["params"]> {} 31 + export interface $output extends v.InferXRPCBodyInput<mainSchema["output"]> {} 32 + 33 + declare module "@atcute/lexicons/ambient" { 34 + interface XRPCQueries { 35 + "rsvp.atmo.space.whoami": mainSchema; 36 + } 37 + }
+11 -5
src/lib/spaces/server/spaces.remote.ts
··· 30 30 if (!dev) error(403, 'Private events are not available yet'); 31 31 const { client } = getClient(); 32 32 33 - const createRes = await client.post('rsvp.atmo.space.admin.createSpace', { 33 + const createRes = await client.post('rsvp.atmo.space.createSpace', { 34 34 input: { type: SPACE_TYPE, key: input.key } 35 35 }); 36 - if (!createRes.ok) error(500, 'createSpace failed'); 36 + if (!createRes.ok) { 37 + console.error('createSpace failed', createRes.status, createRes.data); 38 + error(500, `createSpace failed: ${createRes.status} ${JSON.stringify(createRes.data)}`); 39 + } 37 40 const spaceUri = createRes.data.space.uri; 38 41 39 42 const putRes = await client.post('rsvp.atmo.space.putRecord', { ··· 43 46 record: input.record 44 47 } 45 48 }); 46 - if (!putRes.ok) error(500, 'putRecord failed'); 49 + if (!putRes.ok) { 50 + console.error('putRecord (space) failed', putRes.status, putRes.data); 51 + error(500, `putRecord failed: ${putRes.status} ${JSON.stringify(putRes.data)}`); 52 + } 47 53 48 54 return { spaceUri, rkey: putRes.data.rkey }; 49 55 } ··· 116 122 }), 117 123 async (input) => { 118 124 const { client } = getClient(); 119 - const res = await client.post('rsvp.atmo.space.admin.addMember', { 125 + const res = await client.post('rsvp.atmo.space.addMember', { 120 126 input: { 121 127 spaceUri: input.spaceUri as unknown as import('@atcute/lexicons').ResourceUri, 122 128 did: input.did as `did:${string}:${string}`, ··· 135 141 }), 136 142 async (input) => { 137 143 const { client } = getClient(); 138 - const res = await client.post('rsvp.atmo.space.admin.removeMember', { 144 + const res = await client.post('rsvp.atmo.space.removeMember', { 139 145 input: { 140 146 spaceUri: input.spaceUri as unknown as import('@atcute/lexicons').ResourceUri, 141 147 did: input.did as `did:${string}:${string}`
+2 -2
src/lib/spaces/tunnel-service.generated.ts
··· 2 2 * When the tunnel is running, this file is rewritten with the tunnel's 3 3 * service DID + URL; when the tunnel stops, it is reset to null values. */ 4 4 5 - export const SERVICE_DID: string | null = "did:web:salary-lists-seas-species.trycloudflare.com"; 6 - export const SERVICE_URL: string | null = "https://salary-lists-seas-species.trycloudflare.com"; 5 + export const SERVICE_DID: string | null = "did:web:described-yamaha-fame-social.trycloudflare.com"; 6 + export const SERVICE_URL: string | null = "https://described-yamaha-fame-social.trycloudflare.com";
+1 -1
vite.config.ts
··· 9 9 server: { 10 10 host: '127.0.0.1', 11 11 port: DEV_PORT, 12 - allowedHosts: ['salary-lists-seas-species.trycloudflare.com'] 12 + allowedHosts: ['described-yamaha-fame-social.trycloudflare.com'] 13 13 } 14 14 });