import { Citizenship } from 'src/types/citizenship';
import { KeyValueString } from 'src/types/data';
import { JsonRecord } from 'src/utils/localStorage';

type ParamsContext = {
  path?: string[];
  query?: string;
  search?: { [k: string]: string };
};

export type UserContext = {
  address?: string;
  nickname?: string;
  passport?: Citizenship;
  particle?: string | null;
};

type ScriptContext = {
  params: ParamsContext;
  user: UserContext;
  secrets: JsonRecord;
};

type EngineContext = Omit<ScriptContext, 'secrets'> & {
  secrets: KeyValueString;
};

type ScriptEntrypoint = {
  title: string;
  script: string;
  enabled: boolean;
};

type ScriptEntrypoints = {
  particle: ScriptEntrypoint;
  // myParticle: ScriptEntrypoint;
};

type ScriptEntrypointNames = keyof ScriptEntrypoints;

type ScriptCallback = (data: any) => Promise<void>;

type ScriptParticleParams = {
  cid?: string;
  contentType?: string;
  content?: string;
};

// type ScriptMyParticleParams = {
//   nickname?: string;
//   input?: string;
// };

type ScriptParticleResult = {
  action: 'pass' | 'cid_result' | 'content_result' | 'hide' | 'error';
  cid?: string;
  content?: string;
  message?: string;
};

type ScriptMyParticleResult = {
  action: 'pass' | 'answer' | 'error';
  answer?: string;
};

type MetaLinkComponent = {
  type: 'link';
  url: string;
  title: string;
};

type MetaTextComponent = {
  type: 'text';
  text: string;
};

type ScriptMyCampanion = {
  action: 'pass' | 'answer' | 'error';
  metaItems: (MetaLinkComponent | MetaTextComponent)[][];
};

// type ScriptScopeParams = {
//   particle?: ScriptParticleParams;
//   myParticle?: ScriptMyParticleParams;
//   refId?: string;
// };

type EntrypointParams = {
  [key: string]: any;
};

type ScriptExecutionResult = {
  error?: string;
  result: ScriptParticleResult;
  diagnosticsOutput?: string;
  output?: string;
  diagnostics?: object[];
  instructions?: string;
};

export type {
  ScriptContext,
  UserContext,
  ParamsContext,
  ScriptEntrypointNames,
  ScriptEntrypoint,
  ScriptCallbackStatus,
  ScriptCallback,
  EntrypointParams,
  ScriptParticleParams,
  // ScriptMyParticleParams,
  // ScriptScopeParams,
  ScriptExecutionResult,
  ScriptEntrypoints,
  ScriptMyParticleResult,
  ScriptParticleResult,
  EngineContext,
  ScriptMyCampanion,
};

Synonyms

soft3.js/src/types.ts
pussy-ts/src/soft.js/types.ts
cyb/src/services/soft.js/types.ts
cyber-ts/packages/cyber-ts/src/types.ts
cyb/src/pages/Keys/types.ts
pussy-ts/src/utils/logging/types.ts
pussy-ts/src/services/QueueManager/types.ts
cyb/src/containers/mint/types.ts
cyb/src/services/ipfs/types.ts
cyb/src/utils/logging/types.ts
pussy-ts/src/components/containerGradient/types.ts
cyb/src/containers/Search/types.ts
pussy-ts/src/containers/Search/types.ts
cyb/src/features/cybernet/types.ts
cyb/src/services/QueueManager/types.ts
cyb/src/components/containerGradient/types.ts
bostrom.network/src/integrations/supabase/types.ts
pussy-ts/src/features/sense/ui/types.ts
cyb/src/features/ibc-history/tx/types.ts
cyb/src/services/CozoDb/types/types.ts
cyb/src/pages/Keys/ActionBar/types.ts
pussy-ts/src/services/ibc-history/tx/types.ts
pussy-landing/src/components/xp/containerGradient/types.ts
cyb/src/features/sense/ui/types.ts
pussy-ts/src/services/CozoDb/types/types.ts
soft3.js/src/codec/cyber/resources/v1beta1/types.ts
cyb/src/services/backend/workers/db/types.ts
soft3.js/src/codec/cyber/graph/v1beta1/types.ts
pussy-ts/src/services/backend/services/lcd/types.ts
pussy-ts/src/services/backend/services/sync/types.ts
pussy-ts/src/services/backend/services/indexer/types.ts
cyb/src/services/backend/services/indexer/types.ts
pussy-ts/src/services/backend/workers/db/types.ts
soft3.js/src/codec/cyber/bandwidth/v1beta1/types.ts
soft3.js/src/codec/cyber/grid/v1beta1/types.ts
cyber-ts/packages/cyber-ts/src/tendermint/p2p/types.ts
cyber-ts/packages/cyber-ts/src/tendermint/version/types.ts
cyb/src/services/backend/services/sync/types.ts
cyb/src/services/backend/channels/BackendQueueChannel/types.ts
soft3.js/src/codec/cyber/rank/v1beta1/types.ts
cyber-ts/packages/cyber-ts/src/tendermint/abci/types.ts
cyber-ts/packages/cyber-ts/src/tendermint/types/types.ts
cyber-ts/packages/cyber-ts/src/tendermint/libs/bits/types.ts
cyber-ts/packages/cyber-ts/src/cyber/dmn/v1beta1/types.ts
cyber-ts/packages/cyber-ts/src/cyber/bandwidth/v1beta1/types.ts
pussy-ts/src/services/backend/services/sync/services/types.ts
cyber-ts/packages/cyber-ts/src/cosmwasm/wasm/v1/types.ts
cyber-ts/packages/cyber-ts/src/cyber/rank/v1beta1/types.ts
cyber-ts/packages/cyber-ts/src/cyber/resources/v1beta1/types.ts
cyber-ts/packages/cyber-ts/src/cyber/graph/v1beta1/types.ts
cyb/src/services/backend/services/sync/services/types.ts
cyber-ts/packages/cyber-ts/src/cyber/grid/v1beta1/types.ts
pussy-ts/src/services/backend/services/sync/services/ParticlesResolverQueue/types.ts
cyb/src/services/backend/services/sync/services/ParticlesResolverQueue/types.ts

Neighbours