# Точки входа пакета

> Каждый импортируемый путь и то, что за ним стоит.

Source: https://docxcelerate.com/ru/docs/reference/entrypoints/

Пакет поставляется скомпилированным, с декларациями типов. Все точки входа ниже
объявлены в `exports`, поэтому они разрешаются и в Node, и в сборщиках без
глубоких импортов внутрь `dist/`.

## docxcelerate

Основная поверхность: сборщик документа, хелперы артефактов, деривер-функции,
типы времени выполнения и все типы предметной области документа.

```ts
import {
  buildDocument,
  buildProjectPreviewDocument,
  cleanMinimalDocumentStyle,
  dataRef,
  derive,
  type DocumentModel,
  type ParagraphNode,
} from "docxcelerate";
```

## docxcelerate/document

Описание проекта документа — точка входа, которую использует созданный
`document.project.ts`. CLI и имена создаваемых файлов по-прежнему говорят
`document`; API — нет.

```ts
import { defineDocumentProject } from "docxcelerate/document";
```

## docxcelerate/template

Поверхность авторства: элементы, хуки и сам `template`. Именно это импортирует
файл компонента.

```ts
import {
  Document,
  Graph,
  Image,
  Paragraph,
  Section,
  TableOfContents,
  template,
  useAvailableTokens,
  useFormat,
  usePlaceholderData,
  useSetPlaceholders,
  useSetPrompts,
  useShared,
  useState,
} from "docxcelerate/template";
```

Имя каждого элемента — одновременно и тип компонента, поэтому `const Greeting:
Paragraph = () => <Paragraph … />` называет, что компонент отдаёт, и запрещает
вернуть не тот вид.

Её JSX-рантайм доступен по адресу `docxcelerate/template/jsx-runtime` (а также
`.../jsx-dev-runtime`) — именно туда разрешается `jsxImportSource`.

## docxcelerate/docx

Построение DOCX.

```ts
import { createDocxBlob, createDocxDocument, renderDocxBytes } from "docxcelerate/docx";
```

Рендерер один, и он пишет файлы Word. Чтобы показать документ на экране,
упакуйте его и прочитайте файл обратно DOCX-просмотрщиком — именно это делает
приложение предпросмотра в вашем workspace через `docx-preview`, и так же
устроены предпросмотры на этом сайте. Второй рендерер, раскладывающий модель в
HTML, был бы вторым ответом на вопрос, как выглядит документ, а тот, который
никто не открывает в Word, и уходит в сторону.

## docxcelerate/scaffold и /cli

Генератор workspace и его интерфейс командной строки — чтобы строить поверх них
собственные инструменты.

```ts
import { scaffoldWorkspace } from "docxcelerate/scaffold";
```
