npm.io
0.4.0 • Published 4d ago

@airalogy/aira-core

Licence
Apache-2.0
Version
0.4.0
Deps
0
Size
76 kB
Vulns
0
Weekly
160

@airalogy/aira-core

Core TypeScript parser and validator for Airalogy .aira archives.

It opens .aira files in browser-compatible JavaScript, reads _airalogy_archive/manifest.json, lists archive members, loads JSON/text payloads, and validates manifest references, Record payload structure, Record hashes, Protocol file hashes, and offline blob hashes.

It can also create single-Protocol .aira archives in the browser. This is useful for editors that let users attach protocol-local assets such as files/workflow-diagram.svg and reference them from AIMD fig blocks.

Supported archive kinds are protocol, protocols, and records.

Example archives covering these kinds are available in examples/aira/.

The public manifest schema is available at schemas/aira/manifest.v1.schema.json; the public Record schema is available at schemas/aira/record.v1.schema.json.

import { openAiraArchive } from '@airalogy/aira-core'

const archive = await openAiraArchive(file)
const summary = archive.summary()
const validation = await archive.validate()
const manifest = archive.manifest

Read an ordinary ZIP folder bundle when you do not expect an Airalogy manifest:

import { openZipArchive } from '@airalogy/aira-core'

const zip = await openZipArchive(file)
const aimd = await zip.readText('protocol.aimd')
const image = await zip.readBytes('files/workflow-diagram.svg')

Create a Protocol archive with protocol-local figure files:

import { createProtocolAiraArchive } from '@airalogy/aira-core'

const bytes = await createProtocolAiraArchive({
  aimd: [
    '# Figure Protocol',
    '',
    '```fig',
    'id: workflow_diagram',
    'src: files/workflow-diagram.svg',
    'title: Workflow Diagram',
    '```',
    '',
  ].join('\n'),
  files: [
    {
      path: 'files/workflow-diagram.svg',
      data: svgFile,
    },
  ],
})

.aira archives are standard ZIP containers. The core package keeps reading independent from the full Airalogy platform, database, or execution engine.

Keywords