@anydocs/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/dist/config/index.d.ts +2 -0
  2. package/dist/config/index.d.ts.map +1 -0
  3. package/dist/config/index.js +1 -0
  4. package/dist/config/project-config.d.ts +10 -0
  5. package/dist/config/project-config.d.ts.map +1 -0
  6. package/dist/config/project-config.js +52 -0
  7. package/dist/errors/domain-error.d.ts +12 -0
  8. package/dist/errors/domain-error.d.ts.map +1 -0
  9. package/dist/errors/domain-error.js +8 -0
  10. package/dist/errors/index.d.ts +3 -0
  11. package/dist/errors/index.d.ts.map +1 -0
  12. package/dist/errors/index.js +2 -0
  13. package/dist/errors/validation-error.d.ts +5 -0
  14. package/dist/errors/validation-error.d.ts.map +1 -0
  15. package/dist/errors/validation-error.js +7 -0
  16. package/dist/fs/api-source-repository.d.ts +16 -0
  17. package/dist/fs/api-source-repository.d.ts.map +1 -0
  18. package/dist/fs/api-source-repository.js +89 -0
  19. package/dist/fs/content-repository.d.ts +13 -0
  20. package/dist/fs/content-repository.d.ts.map +1 -0
  21. package/dist/fs/content-repository.js +171 -0
  22. package/dist/fs/docs-repository.d.ts +26 -0
  23. package/dist/fs/docs-repository.d.ts.map +1 -0
  24. package/dist/fs/docs-repository.js +270 -0
  25. package/dist/fs/index.d.ts +5 -0
  26. package/dist/fs/index.d.ts.map +1 -0
  27. package/dist/fs/index.js +4 -0
  28. package/dist/fs/project-paths.d.ts +4 -0
  29. package/dist/fs/project-paths.d.ts.map +1 -0
  30. package/dist/fs/project-paths.js +55 -0
  31. package/dist/index.d.ts +9 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +8 -0
  34. package/dist/publishing/build-artifacts.d.ts +4 -0
  35. package/dist/publishing/build-artifacts.d.ts.map +1 -0
  36. package/dist/publishing/build-artifacts.js +453 -0
  37. package/dist/publishing/build-openapi-artifacts.d.ts +3 -0
  38. package/dist/publishing/build-openapi-artifacts.d.ts.map +1 -0
  39. package/dist/publishing/build-openapi-artifacts.js +253 -0
  40. package/dist/publishing/index.d.ts +4 -0
  41. package/dist/publishing/index.d.ts.map +1 -0
  42. package/dist/publishing/index.js +3 -0
  43. package/dist/publishing/publication-filter.d.ts +22 -0
  44. package/dist/publishing/publication-filter.d.ts.map +1 -0
  45. package/dist/publishing/publication-filter.js +98 -0
  46. package/dist/schemas/api-source-schema.d.ts +3 -0
  47. package/dist/schemas/api-source-schema.d.ts.map +1 -0
  48. package/dist/schemas/api-source-schema.js +110 -0
  49. package/dist/schemas/docs-schema.d.ts +7 -0
  50. package/dist/schemas/docs-schema.d.ts.map +1 -0
  51. package/dist/schemas/docs-schema.js +212 -0
  52. package/dist/schemas/index.d.ts +4 -0
  53. package/dist/schemas/index.d.ts.map +1 -0
  54. package/dist/schemas/index.js +3 -0
  55. package/dist/schemas/project-schema.d.ts +3 -0
  56. package/dist/schemas/project-schema.d.ts.map +1 -0
  57. package/dist/schemas/project-schema.js +268 -0
  58. package/dist/services/authoring-service.d.ts +137 -0
  59. package/dist/services/authoring-service.d.ts.map +1 -0
  60. package/dist/services/authoring-service.js +583 -0
  61. package/dist/services/build-service.d.ts +35 -0
  62. package/dist/services/build-service.d.ts.map +1 -0
  63. package/dist/services/build-service.js +84 -0
  64. package/dist/services/index.d.ts +11 -0
  65. package/dist/services/index.d.ts.map +1 -0
  66. package/dist/services/index.js +10 -0
  67. package/dist/services/init-service.d.ts +15 -0
  68. package/dist/services/init-service.d.ts.map +1 -0
  69. package/dist/services/init-service.js +127 -0
  70. package/dist/services/legacy-conversion-service.d.ts +8 -0
  71. package/dist/services/legacy-conversion-service.d.ts.map +1 -0
  72. package/dist/services/legacy-conversion-service.js +601 -0
  73. package/dist/services/legacy-import-service.d.ts +10 -0
  74. package/dist/services/legacy-import-service.d.ts.map +1 -0
  75. package/dist/services/legacy-import-service.js +239 -0
  76. package/dist/services/page-template-service.d.ts +81 -0
  77. package/dist/services/page-template-service.d.ts.map +1 -0
  78. package/dist/services/page-template-service.js +342 -0
  79. package/dist/services/preview-service.d.ts +29 -0
  80. package/dist/services/preview-service.d.ts.map +1 -0
  81. package/dist/services/preview-service.js +45 -0
  82. package/dist/services/watch-service.d.ts +24 -0
  83. package/dist/services/watch-service.d.ts.map +1 -0
  84. package/dist/services/watch-service.js +216 -0
  85. package/dist/services/web-runtime-bridge.d.ts +33 -0
  86. package/dist/services/web-runtime-bridge.d.ts.map +1 -0
  87. package/dist/services/web-runtime-bridge.js +330 -0
  88. package/dist/services/workflow-compatibility-service.d.ts +3 -0
  89. package/dist/services/workflow-compatibility-service.d.ts.map +1 -0
  90. package/dist/services/workflow-compatibility-service.js +53 -0
  91. package/dist/services/workflow-standard-service.d.ts +9 -0
  92. package/dist/services/workflow-standard-service.d.ts.map +1 -0
  93. package/dist/services/workflow-standard-service.js +372 -0
  94. package/dist/types/api-source.d.ts +34 -0
  95. package/dist/types/api-source.d.ts.map +1 -0
  96. package/dist/types/api-source.js +8 -0
  97. package/dist/types/docs.d.ts +65 -0
  98. package/dist/types/docs.d.ts.map +1 -0
  99. package/dist/types/docs.js +8 -0
  100. package/dist/types/index.d.ts +6 -0
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/index.js +5 -0
  103. package/dist/types/legacy-import.d.ts +72 -0
  104. package/dist/types/legacy-import.d.ts.map +1 -0
  105. package/dist/types/legacy-import.js +1 -0
  106. package/dist/types/project.d.ts +85 -0
  107. package/dist/types/project.d.ts.map +1 -0
  108. package/dist/types/project.js +5 -0
  109. package/dist/types/workflow-standard.d.ts +51 -0
  110. package/dist/types/workflow-standard.d.ts.map +1 -0
  111. package/dist/types/workflow-standard.js +1 -0
  112. package/dist/utils/index.d.ts +4 -0
  113. package/dist/utils/index.d.ts.map +1 -0
  114. package/dist/utils/index.js +3 -0
  115. package/dist/utils/slug.d.ts +3 -0
  116. package/dist/utils/slug.d.ts.map +1 -0
  117. package/dist/utils/slug.js +21 -0
  118. package/dist/utils/yoopta-content.d.ts +13 -0
  119. package/dist/utils/yoopta-content.d.ts.map +1 -0
  120. package/dist/utils/yoopta-content.js +73 -0
  121. package/dist/utils/yoopta-render.d.ts +7 -0
  122. package/dist/utils/yoopta-render.d.ts.map +1 -0
  123. package/dist/utils/yoopta-render.js +155 -0
  124. package/package.json +30 -0
@@ -0,0 +1,270 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { ValidationError } from "../errors/validation-error.js";
4
+ import { isPageApprovedForPublication } from "../publishing/publication-filter.js";
5
+ import { validateNavigationDoc, validatePageDoc, } from "../schemas/docs-schema.js";
6
+ import { assertValidPageId, normalizeSlug } from "../utils/slug.js";
7
+ function createRepositoryValidationError(rule, remediation, metadata) {
8
+ return new ValidationError(`Docs repository validation failed for rule "${rule}".`, {
9
+ entity: 'docs-repository',
10
+ rule,
11
+ remediation,
12
+ metadata,
13
+ });
14
+ }
15
+ export function createDocsRepository(projectRoot) {
16
+ if (!projectRoot || projectRoot.includes('..')) {
17
+ throw createRepositoryValidationError('project-root-safe-path', 'Provide a project root without parent-directory traversal.', { projectRoot });
18
+ }
19
+ return {
20
+ projectRoot,
21
+ pagesRoot: path.join(projectRoot, 'pages'),
22
+ navigationRoot: path.join(projectRoot, 'navigation'),
23
+ };
24
+ }
25
+ function pagesDir(repository, lang) {
26
+ return path.join(repository.pagesRoot, lang);
27
+ }
28
+ function navigationFile(repository, lang) {
29
+ return path.join(repository.navigationRoot, `${lang}.json`);
30
+ }
31
+ async function readJson(filePath) {
32
+ const raw = await fs.readFile(filePath, 'utf8');
33
+ return JSON.parse(raw);
34
+ }
35
+ function isMissingFileError(error) {
36
+ return !!error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT';
37
+ }
38
+ async function writeJsonAtomic(filePath, value) {
39
+ const dir = path.dirname(filePath);
40
+ const tempFilePath = path.join(dir, `.${path.basename(filePath)}.${process.pid}.${Date.now()}.tmp`);
41
+ await fs.mkdir(dir, { recursive: true });
42
+ await fs.writeFile(tempFilePath, JSON.stringify(value, null, 2) + '\n', 'utf8');
43
+ await fs.rename(tempFilePath, filePath);
44
+ }
45
+ function findDuplicateSlug(pages, slug, pageId) {
46
+ return pages.find((page) => page.slug === slug && page.id !== pageId);
47
+ }
48
+ function collectNavigationPageIds(items, out) {
49
+ for (const item of items) {
50
+ if (item.type === 'page') {
51
+ out.push(item.pageId);
52
+ continue;
53
+ }
54
+ if (item.type === 'section' || item.type === 'folder') {
55
+ collectNavigationPageIds(item.children, out);
56
+ }
57
+ }
58
+ }
59
+ function collectTopLevelGroupIds(items) {
60
+ const ids = new Set();
61
+ for (const item of items) {
62
+ if ((item.type === 'section' || item.type === 'folder') && item.id) {
63
+ ids.add(item.id);
64
+ }
65
+ }
66
+ return ids;
67
+ }
68
+ function removePageReferences(items, pageId) {
69
+ let removed = 0;
70
+ const nextItems = [];
71
+ for (const item of items) {
72
+ if (item.type === 'page') {
73
+ if (item.pageId === pageId) {
74
+ removed += 1;
75
+ continue;
76
+ }
77
+ nextItems.push(item);
78
+ continue;
79
+ }
80
+ if (item.type === 'section' || item.type === 'folder') {
81
+ const cleaned = removePageReferences(item.children, pageId);
82
+ removed += cleaned.removed;
83
+ nextItems.push({ ...item, children: cleaned.items });
84
+ continue;
85
+ }
86
+ nextItems.push(item);
87
+ }
88
+ return { items: nextItems, removed };
89
+ }
90
+ export async function initializeDocsRepository(repository, languages = ['en', 'zh']) {
91
+ await fs.mkdir(repository.navigationRoot, { recursive: true });
92
+ for (const lang of languages) {
93
+ await fs.mkdir(pagesDir(repository, lang), { recursive: true });
94
+ const navFile = navigationFile(repository, lang);
95
+ try {
96
+ await fs.access(navFile);
97
+ }
98
+ catch {
99
+ await writeJsonAtomic(navFile, { version: 1, items: [] });
100
+ }
101
+ }
102
+ }
103
+ export async function loadNavigation(repository, lang) {
104
+ try {
105
+ return validateNavigationDoc(await readJson(navigationFile(repository, lang)));
106
+ }
107
+ catch (error) {
108
+ if (isMissingFileError(error)) {
109
+ return { version: 1, items: [] };
110
+ }
111
+ throw error;
112
+ }
113
+ }
114
+ export async function saveNavigation(repository, lang, navigation, options = {}) {
115
+ const validated = validateNavigationDoc(navigation);
116
+ if (options.existingPageIds) {
117
+ const knownPageIds = new Set(options.existingPageIds);
118
+ const referencedPageIds = [];
119
+ collectNavigationPageIds(validated.items, referencedPageIds);
120
+ const missingPageId = referencedPageIds.find((pageId) => !knownPageIds.has(pageId));
121
+ if (missingPageId) {
122
+ throw new ValidationError(`Navigation references missing page "${missingPageId}".`, {
123
+ entity: 'navigation-doc',
124
+ rule: 'navigation-page-reference-must-exist',
125
+ remediation: 'Create the referenced page first or remove the missing page reference from navigation.',
126
+ metadata: { lang, pageId: missingPageId },
127
+ });
128
+ }
129
+ }
130
+ if (options.requiredTopLevelGroupIds) {
131
+ const availableGroupIds = collectTopLevelGroupIds(validated.items);
132
+ for (const groupId of options.requiredTopLevelGroupIds) {
133
+ if (availableGroupIds.has(groupId)) {
134
+ continue;
135
+ }
136
+ throw new ValidationError(`Navigation is missing required top-level group "${groupId}".`, {
137
+ entity: 'navigation-doc',
138
+ rule: 'navigation-top-level-group-must-exist',
139
+ remediation: 'Create the referenced top-level section or folder, or update site.navigation.topNav to reference an existing group id.',
140
+ metadata: { lang, groupId },
141
+ });
142
+ }
143
+ }
144
+ await writeJsonAtomic(navigationFile(repository, lang), validated);
145
+ return validated;
146
+ }
147
+ export async function listPages(repository, lang, options = {}) {
148
+ let entries = [];
149
+ try {
150
+ entries = await fs.readdir(pagesDir(repository, lang));
151
+ }
152
+ catch {
153
+ return [];
154
+ }
155
+ const pages = [];
156
+ for (const entry of entries) {
157
+ if (!entry.endsWith('.json'))
158
+ continue;
159
+ try {
160
+ const page = validatePageDoc(await readJson(path.join(pagesDir(repository, lang), entry)), options);
161
+ if (page.lang === lang) {
162
+ pages.push(page);
163
+ }
164
+ }
165
+ catch (error) {
166
+ if (isMissingFileError(error)) {
167
+ continue;
168
+ }
169
+ throw error;
170
+ }
171
+ }
172
+ pages.sort((left, right) => left.slug.localeCompare(right.slug));
173
+ return pages;
174
+ }
175
+ export async function loadPage(repository, lang, pageId, options = {}) {
176
+ assertValidPageId(pageId);
177
+ try {
178
+ const page = validatePageDoc(await readJson(path.join(pagesDir(repository, lang), `${pageId}.json`)), options);
179
+ return page.lang === lang && page.id === pageId ? page : null;
180
+ }
181
+ catch (error) {
182
+ if (isMissingFileError(error)) {
183
+ return null;
184
+ }
185
+ throw error;
186
+ }
187
+ }
188
+ export async function savePage(repository, lang, page, options = {}) {
189
+ const validatedPage = validatePageDoc(page, options);
190
+ if (validatedPage.lang !== lang) {
191
+ throw new ValidationError(`Page language "${validatedPage.lang}" does not match requested language "${lang}".`, {
192
+ entity: 'page-doc',
193
+ rule: 'page-language-matches-target-language',
194
+ remediation: 'Save the page under the same language as its page.lang field.',
195
+ metadata: { pageId: validatedPage.id, pageLang: validatedPage.lang, targetLang: lang },
196
+ });
197
+ }
198
+ assertValidPageId(validatedPage.id);
199
+ const slug = normalizeSlug(validatedPage.slug);
200
+ if (!slug) {
201
+ throw new ValidationError('Page slug is required.', {
202
+ entity: 'page-doc',
203
+ rule: 'page-slug-required',
204
+ remediation: 'Provide a non-empty slug before saving the page.',
205
+ metadata: { pageId: validatedPage.id },
206
+ });
207
+ }
208
+ const normalizedPage = {
209
+ ...validatedPage,
210
+ slug,
211
+ };
212
+ if (normalizedPage.status === 'published' && !isPageApprovedForPublication(normalizedPage)) {
213
+ throw new ValidationError('Page review must be explicitly approved before publication.', {
214
+ entity: 'page-doc',
215
+ rule: 'page-review-must-be-approved-before-publication',
216
+ remediation: 'Use the explicit approve-for-publication action on reviewed imported or AI-generated content before setting status to published.',
217
+ metadata: {
218
+ pageId: normalizedPage.id,
219
+ lang,
220
+ reviewRequired: normalizedPage.review?.required ?? false,
221
+ approvedAt: normalizedPage.review?.approvedAt ?? null,
222
+ },
223
+ });
224
+ }
225
+ const existingPages = await listPages(repository, lang, options);
226
+ const duplicate = findDuplicateSlug(existingPages, normalizedPage.slug, normalizedPage.id);
227
+ if (duplicate) {
228
+ throw new ValidationError(`Duplicate slug "${normalizedPage.slug}" detected.`, {
229
+ entity: 'page-doc',
230
+ rule: 'page-slug-unique-per-language',
231
+ remediation: 'Choose a unique slug for the page within the same language.',
232
+ metadata: {
233
+ pageId: normalizedPage.id,
234
+ duplicatePageId: duplicate.id,
235
+ slug: normalizedPage.slug,
236
+ lang,
237
+ },
238
+ });
239
+ }
240
+ await writeJsonAtomic(path.join(pagesDir(repository, lang), `${normalizedPage.id}.json`), normalizedPage);
241
+ return normalizedPage;
242
+ }
243
+ export async function findPageBySlug(repository, lang, slug, options = {}) {
244
+ const normalizedSlug = normalizeSlug(slug);
245
+ const pages = await listPages(repository, lang, options);
246
+ return pages.find((page) => page.slug === normalizedSlug) ?? null;
247
+ }
248
+ export async function deletePage(repository, lang, pageId) {
249
+ const page = await loadPage(repository, lang, pageId);
250
+ if (!page) {
251
+ throw new ValidationError(`Page "${pageId}" not found.`, {
252
+ entity: 'page-doc',
253
+ rule: 'page-delete-target-must-exist',
254
+ remediation: 'Delete an existing page or refresh the page list before retrying.',
255
+ metadata: { lang, pageId },
256
+ });
257
+ }
258
+ await fs.rm(path.join(pagesDir(repository, lang), `${pageId}.json`));
259
+ const navigation = await loadNavigation(repository, lang);
260
+ const cleaned = removePageReferences(navigation.items, pageId);
261
+ await saveNavigation(repository, lang, {
262
+ ...navigation,
263
+ items: cleaned.items,
264
+ });
265
+ return {
266
+ pageId,
267
+ lang,
268
+ removedNavigationRefs: cleaned.removed,
269
+ };
270
+ }
@@ -0,0 +1,5 @@
1
+ export * from './api-source-repository.ts';
2
+ export * from './content-repository.ts';
3
+ export * from './docs-repository.ts';
4
+ export * from './project-paths.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fs/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./api-source-repository.js";
2
+ export * from "./content-repository.js";
3
+ export * from "./docs-repository.js";
4
+ export * from "./project-paths.js";
@@ -0,0 +1,4 @@
1
+ import { type ProjectConfig, type ProjectPathContract } from '../types/project.ts';
2
+ export declare function createProjectPathContract(repoRoot: string, config: ProjectConfig, outputDir?: string): ProjectPathContract;
3
+ export declare function assertProjectContractStructure(config: ProjectConfig, paths: ProjectPathContract): void;
4
+ //# sourceMappingURL=project-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-paths.d.ts","sourceRoot":"","sources":["../../src/fs/project-paths.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAE7B,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,mBAAmB,CAkDrB;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,mBAAmB,GACzB,IAAI,CAYN"}
@@ -0,0 +1,55 @@
1
+ import path from 'node:path';
2
+ import { ValidationError } from "../errors/validation-error.js";
3
+ import { ANYDOCS_CONFIG_FILE, ANYDOCS_WORKFLOW_FILE, resolveProjectRoot, } from "../config/project-config.js";
4
+ import { SUPPORTED_DOCS_LANGUAGES, } from "../types/project.js";
5
+ export function createProjectPathContract(repoRoot, config, outputDir) {
6
+ const projectRoot = resolveProjectRoot(repoRoot, config.projectId);
7
+ const pagesRoot = path.join(projectRoot, 'pages');
8
+ const navigationRoot = path.join(projectRoot, 'navigation');
9
+ // Determine output directory:
10
+ // 1. Explicit parameter (from CLI --output)
11
+ // 2. Config file build.outputDir
12
+ // 3. Default: {repoRoot}/dist
13
+ const resolvedOutputDir = outputDir
14
+ ? path.resolve(repoRoot, outputDir)
15
+ : config.build?.outputDir
16
+ ? path.resolve(projectRoot, config.build.outputDir)
17
+ : path.join(repoRoot, 'dist');
18
+ const artifactRoot = resolvedOutputDir;
19
+ const machineReadableRoot = path.join(artifactRoot, 'mcp');
20
+ const languageRoots = Object.fromEntries(SUPPORTED_DOCS_LANGUAGES.map((language) => [
21
+ language,
22
+ {
23
+ pagesDir: path.join(pagesRoot, language),
24
+ navigationFile: path.join(navigationRoot, `${language}.json`),
25
+ searchIndexFile: path.join(artifactRoot, `search-index.${language}.json`),
26
+ },
27
+ ]));
28
+ return {
29
+ repoRoot,
30
+ projectRoot,
31
+ configFile: path.join(projectRoot, ANYDOCS_CONFIG_FILE),
32
+ workflowFile: path.join(projectRoot, ANYDOCS_WORKFLOW_FILE),
33
+ importsRoot: path.join(projectRoot, 'imports'),
34
+ apiSourcesRoot: path.join(projectRoot, 'api-sources'),
35
+ pagesRoot,
36
+ navigationRoot,
37
+ artifactRoot,
38
+ llmsFile: path.join(artifactRoot, 'llms.txt'),
39
+ machineReadableRoot,
40
+ languageRoots,
41
+ };
42
+ }
43
+ export function assertProjectContractStructure(config, paths) {
44
+ for (const language of config.languages) {
45
+ const roots = paths.languageRoots[language];
46
+ if (!roots) {
47
+ throw new ValidationError(`Missing canonical language paths for "${language}".`, {
48
+ entity: 'project-path-contract',
49
+ rule: 'language-roots-must-cover-enabled-languages',
50
+ remediation: 'Ensure the path contract defines page, navigation, and search paths for every enabled language.',
51
+ metadata: { language, enabledLanguages: config.languages },
52
+ });
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,9 @@
1
+ export * from './config/index.ts';
2
+ export * from './errors/index.ts';
3
+ export * from './fs/index.ts';
4
+ export * from './publishing/index.ts';
5
+ export * from './schemas/index.ts';
6
+ export * from './services/index.ts';
7
+ export * from './types/index.ts';
8
+ export * from './utils/index.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./config/index.js";
2
+ export * from "./errors/index.js";
3
+ export * from "./fs/index.js";
4
+ export * from "./publishing/index.js";
5
+ export * from "./schemas/index.js";
6
+ export * from "./services/index.js";
7
+ export * from "./types/index.js";
8
+ export * from "./utils/index.js";
@@ -0,0 +1,4 @@
1
+ import type { ProjectContract } from '../types/project.ts';
2
+ import type { BuildWorkflowPublishedSiteResult } from '../services/build-service.ts';
3
+ export declare function writePublishedArtifacts(contract: ProjectContract, siteArtifacts: BuildWorkflowPublishedSiteResult[]): Promise<void>;
4
+ //# sourceMappingURL=build-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-artifacts.d.ts","sourceRoot":"","sources":["../../src/publishing/build-artifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAgD,MAAM,qBAAqB,CAAC;AAEzG,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AA0iBrF,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,gCAAgC,EAAE,GAChD,OAAO,CAAC,IAAI,CAAC,CAuIf"}