@atcute/ozone
v3.1.14
Published
Ozone (tools.ozone.*) scheam definitions
Maintainers
Readme
@atcute/ozone
Ozone (tools.ozone.*) schema definitions
npm install @atcute/ozoneusage
import { is, type $type } from '@atcute/lexicons';
import { ToolsOzoneModerationDefs } from '@atcute/ozone';
type LabelEvent = $type.enforce<ToolsOzoneModerationDefs.ModEventLabel>;
const evt: LabelEvent = {
$type: 'tools.ozone.moderation.defs#modEventLabel',
createLabelVals: ['awesome'],
negateLabelVals: [],
};
is(ToolsOzoneModerationDefs.modEventLabelSchema, evt);
// -> truewith @atcute/client
pick either one of these 3 options to register the ambient declarations
// tsconfig.json
{
"compilerOptions": {
"types": ["@atcute/ozone"],
},
}// env.d.ts
/// <reference types="@atcute/ozone" />// index.ts
import type {} from '@atcute/ozone';now all the XRPC operations should be visible in the client
import { Client, simpleFetchHandler } from '@atcute/client';
const client = new Client({
handler: simpleFetchHandler({ service: 'https://mod.example.com' }),
});
const response = await client.post('tools.ozone.moderation.emitEvent', {
input: {
createdBy: 'did:plc:ia76kvnndjutgedggx2ibrem',
subject: {
$type: 'com.atproto.repo.strongRef',
uri: 'at://did:plc:ia76kvnndjutgedggx2ibrem/app.bsky.feed.post/3l6uo5yecnsu7',
cid: 'bafyreibluyqpqno2ixrhdkztquyarpug7k6t4en6ug7g3sw6fonzzmakbq',
},
event: {
$type: 'tools.ozone.moderation.defs#modEventLabel',
createLabelVals: ['awesome'],
negateLabelVals: [],
},
},
});
// ...with @atcute/lex-cli
when building your own lexicons that reference Ozone types, configure lex-cli to import from this package:
// file: lex.config.js
import { defineLexiconConfig } from '@atcute/lex-cli';
export default defineLexiconConfig({
files: ['lexicons/**/*.json'],
outdir: 'src/lexicons/',
imports: ['@atcute/ozone'],
});