@aopslab/domain-kit-docman 0.1.4

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 (64) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +6 -0
  3. package/README.md +79 -0
  4. package/dist/config/config.d.ts +55 -0
  5. package/dist/config/config.js +176 -0
  6. package/dist/domain-services/index.d.ts +7 -0
  7. package/dist/domain-services/index.js +7 -0
  8. package/dist/domain-services/jwt.d.ts +1 -0
  9. package/dist/domain-services/jwt.js +5 -0
  10. package/dist/domain-services/metrics.d.ts +5 -0
  11. package/dist/domain-services/metrics.js +7 -0
  12. package/dist/domain-services/presets.d.ts +3 -0
  13. package/dist/domain-services/presets.js +4 -0
  14. package/dist/domain-services/provider.d.ts +2 -0
  15. package/dist/domain-services/provider.js +564 -0
  16. package/dist/domain-services/resilience.d.ts +6 -0
  17. package/dist/domain-services/resilience.js +19 -0
  18. package/dist/domain-services/types.d.ts +179 -0
  19. package/dist/domain-services/types.js +1 -0
  20. package/dist/domain-services/unified.d.ts +272 -0
  21. package/dist/domain-services/unified.js +210 -0
  22. package/dist/errors/error.map.d.ts +21 -0
  23. package/dist/errors/error.map.js +47 -0
  24. package/dist/errors/friendly.d.ts +31 -0
  25. package/dist/errors/friendly.js +407 -0
  26. package/dist/errors/i18n.d.ts +4 -0
  27. package/dist/errors/i18n.js +10 -0
  28. package/dist/errors/index.d.ts +3 -0
  29. package/dist/errors/index.js +3 -0
  30. package/dist/index.d.ts +9 -0
  31. package/dist/index.js +7 -0
  32. package/dist/operations/catalog.d.ts +11 -0
  33. package/dist/operations/catalog.js +299 -0
  34. package/dist/operations/contract.d.ts +31 -0
  35. package/dist/operations/contract.js +667 -0
  36. package/dist/operations/dcm.d.ts +58 -0
  37. package/dist/operations/dcm.js +168 -0
  38. package/dist/operations/definition.d.ts +6 -0
  39. package/dist/operations/definition.js +140 -0
  40. package/dist/operations/executor.d.ts +10 -0
  41. package/dist/operations/executor.js +269 -0
  42. package/dist/operations/host-projection.d.ts +11 -0
  43. package/dist/operations/host-projection.js +156 -0
  44. package/dist/operations/index.d.ts +10 -0
  45. package/dist/operations/index.js +10 -0
  46. package/dist/operations/io-types.d.ts +125 -0
  47. package/dist/operations/io-types.js +1 -0
  48. package/dist/operations/schemas.d.ts +10 -0
  49. package/dist/operations/schemas.js +872 -0
  50. package/dist/operations/scope-owned-create.d.ts +3 -0
  51. package/dist/operations/scope-owned-create.js +12 -0
  52. package/dist/operations/tool-input.d.ts +11 -0
  53. package/dist/operations/tool-input.js +357 -0
  54. package/dist/operations/types.d.ts +37 -0
  55. package/dist/operations/types.js +1 -0
  56. package/dist/resources/index.d.ts +1 -0
  57. package/dist/resources/index.js +1 -0
  58. package/dist/resources/resources.docman.server.errors.d.ts +14 -0
  59. package/dist/resources/resources.docman.server.errors.js +36 -0
  60. package/dist/shared/index.d.ts +5 -0
  61. package/dist/shared/index.js +1 -0
  62. package/dist/shared/tool-input-guard.d.ts +1 -0
  63. package/dist/shared/tool-input-guard.js +1 -0
  64. package/package.json +69 -0
@@ -0,0 +1,564 @@
1
+ import { Effect } from 'effect';
2
+ import { createProvider, cacheKeyFromLocale, fingerprintRepositoryConfig, buildRepositoryConfig } from '@aopslab/xf-dm-kits';
3
+ import { DrizzleUnitOfWork, DrizzleUnitOfWorkSqlite } from '@aopslab/xf-db-drizzle';
4
+ import { RepositoryFactoryDocument, RepositoryFactoryDocumentGroup, RepositoryFactoryDocumentVersion, RepositoryFactorySection, RepositoryFactoryPage, RepositoryFactoryPageVersion, RepositoryFactoryDocumentIndexEntry, RepositoryFactoryDocumentSectionLink, RepositoryFactorySectionPageLink, RepositoryFactorySnippet, RepositoryFactoryPageSnippetLink, RepositoryFactoryAsset, RepositoryFactoryAssetVersion, RepositoryFactoryEmbed, RepositoryFactoryPageEmbedLink } from '@aopslab/domain-dm-docman/factories';
5
+ import { DocumentService, DocumentGroupService, DocumentVersionService, SectionService, PageService, PageVersionService, DocumentSectionLinkService, SectionPageLinkService, SnippetService, PageSnippetLinkService, AssetService, AssetVersionService, EmbedService, PageEmbedLinkService } from '@aopslab/domain-dm-docman/services';
6
+ function computeConfigKey(name, cfg) {
7
+ const sigs = [fingerprintRepositoryConfig(cfg.documentRepositoryConfig), fingerprintRepositoryConfig(cfg.documentGroupRepositoryConfig), fingerprintRepositoryConfig(cfg.documentVersionRepositoryConfig), fingerprintRepositoryConfig(cfg.sectionRepositoryConfig), fingerprintRepositoryConfig(cfg.pageRepositoryConfig), fingerprintRepositoryConfig(cfg.pageVersionRepositoryConfig), fingerprintRepositoryConfig(cfg.documentIndexEntryRepositoryConfig), fingerprintRepositoryConfig(cfg.documentSectionLinkRepositoryConfig), fingerprintRepositoryConfig(cfg.sectionPageLinkRepositoryConfig), fingerprintRepositoryConfig(cfg.snippetRepositoryConfig), fingerprintRepositoryConfig(cfg.pageSnippetLinkRepositoryConfig), fingerprintRepositoryConfig(cfg.assetRepositoryConfig), fingerprintRepositoryConfig(cfg.assetVersionRepositoryConfig), fingerprintRepositoryConfig(cfg.embedRepositoryConfig), fingerprintRepositoryConfig(cfg.pageEmbedLinkRepositoryConfig)].filter(Boolean);
8
+ return [name, cfg.tenantId ?? '', ...sigs].join('|');
9
+ }
10
+ function buildResolvedConfig(staticCfg, ctx) {
11
+ const tenantId = ctx.tenantId;
12
+ return {
13
+ tenantId,
14
+ logLevel: staticCfg.logLevel,
15
+ localeOptions: { locale: ctx.locale, fallbackLocale: ctx.fallbackLocale },
16
+ documentRepositoryConfig: buildRepositoryConfig(staticCfg.documentRepository, tenantId),
17
+ documentGroupRepositoryConfig: buildRepositoryConfig(staticCfg.documentGroupRepository, tenantId),
18
+ documentVersionRepositoryConfig: buildRepositoryConfig(staticCfg.documentVersionRepository, tenantId),
19
+ sectionRepositoryConfig: buildRepositoryConfig(staticCfg.sectionRepository, tenantId),
20
+ pageRepositoryConfig: buildRepositoryConfig(staticCfg.pageRepository, tenantId),
21
+ pageVersionRepositoryConfig: buildRepositoryConfig(staticCfg.pageVersionRepository, tenantId),
22
+ documentIndexEntryRepositoryConfig: buildRepositoryConfig(staticCfg.documentIndexEntryRepository, tenantId),
23
+ documentSectionLinkRepositoryConfig: buildRepositoryConfig(staticCfg.documentSectionLinkRepository, tenantId),
24
+ sectionPageLinkRepositoryConfig: buildRepositoryConfig(staticCfg.sectionPageLinkRepository, tenantId),
25
+ snippetRepositoryConfig: buildRepositoryConfig(staticCfg.snippetRepository, tenantId),
26
+ pageSnippetLinkRepositoryConfig: buildRepositoryConfig(staticCfg.pageSnippetLinkRepository, tenantId),
27
+ assetRepositoryConfig: buildRepositoryConfig(staticCfg.assetRepository, tenantId),
28
+ assetVersionRepositoryConfig: buildRepositoryConfig(staticCfg.assetVersionRepository, tenantId),
29
+ embedRepositoryConfig: buildRepositoryConfig(staticCfg.embedRepository, tenantId),
30
+ pageEmbedLinkRepositoryConfig: buildRepositoryConfig(staticCfg.pageEmbedLinkRepository, tenantId),
31
+ };
32
+ }
33
+ function inferDrizzleDialectFromRepositoryConfig(repositoryConfig) {
34
+ const explicit = repositoryConfig?.drizzleDialect;
35
+ if (explicit === 'sqlite')
36
+ return 'sqlite';
37
+ if (explicit === 'pg')
38
+ return 'pg';
39
+ const value = (repositoryConfig?.url ?? '').trim().toLowerCase();
40
+ if (!value)
41
+ return 'pg';
42
+ if (value === ':memory:')
43
+ return 'sqlite';
44
+ if (value.startsWith('sqlite:') || value.startsWith('file:'))
45
+ return 'sqlite';
46
+ if (value.endsWith('.db') || value.endsWith('.sqlite') || value.endsWith('.sqlite3'))
47
+ return 'sqlite';
48
+ return 'pg';
49
+ }
50
+ function createDocmanUnitOfWork(repositoryConfig) {
51
+ if (repositoryConfig?.repositoryType !== 'drizzle')
52
+ return undefined;
53
+ if (inferDrizzleDialectFromRepositoryConfig(repositoryConfig) === 'sqlite') {
54
+ return new DrizzleUnitOfWorkSqlite({
55
+ uri: repositoryConfig.url,
56
+ driver: repositoryConfig.drizzleSqliteDriver,
57
+ });
58
+ }
59
+ return new DrizzleUnitOfWork();
60
+ }
61
+ export function createDocmanKitProvider(options) {
62
+ const name = options.name ?? 'docman-kit';
63
+ function defaultCacheKey(context) {
64
+ if (typeof context.cacheKey === 'string' && context.cacheKey.length > 0)
65
+ return context.cacheKey;
66
+ return cacheKeyFromLocale(context.locale, context.fallbackLocale);
67
+ }
68
+ const gp = createProvider({
69
+ name: `docman-kit::provider::${name}`,
70
+ getContext: options.getContext,
71
+ getCacheKey: (ctx) => options.getCacheKey?.(ctx) ?? defaultCacheKey(ctx),
72
+ resolveLogger: options.resolveLogger,
73
+ resolveConfig: (ctx) => buildResolvedConfig(options.staticConfig, ctx),
74
+ computeConfigKey: (cfg) => computeConfigKey(name, cfg),
75
+ repositories: {
76
+ documentRepository: async (cfg, logger) => {
77
+ const eff = RepositoryFactoryDocument.create({
78
+ repositoryConfig: cfg.documentRepositoryConfig,
79
+ logger,
80
+ logLevel: cfg.logLevel,
81
+ });
82
+ return await Effect.runPromise(eff);
83
+ },
84
+ documentGroupRepository: async (cfg, logger) => {
85
+ const eff = RepositoryFactoryDocumentGroup.create({
86
+ repositoryConfig: cfg.documentGroupRepositoryConfig,
87
+ logger,
88
+ logLevel: cfg.logLevel,
89
+ });
90
+ return await Effect.runPromise(eff);
91
+ },
92
+ documentVersionRepository: async (cfg, logger) => {
93
+ const eff = RepositoryFactoryDocumentVersion.create({
94
+ repositoryConfig: cfg.documentVersionRepositoryConfig,
95
+ logger,
96
+ logLevel: cfg.logLevel,
97
+ });
98
+ return await Effect.runPromise(eff);
99
+ },
100
+ sectionRepository: async (cfg, logger) => {
101
+ const eff = RepositoryFactorySection.create({
102
+ repositoryConfig: cfg.sectionRepositoryConfig,
103
+ logger,
104
+ logLevel: cfg.logLevel,
105
+ });
106
+ return await Effect.runPromise(eff);
107
+ },
108
+ pageRepository: async (cfg, logger) => {
109
+ const eff = RepositoryFactoryPage.create({
110
+ repositoryConfig: cfg.pageRepositoryConfig,
111
+ logger,
112
+ logLevel: cfg.logLevel,
113
+ });
114
+ return await Effect.runPromise(eff);
115
+ },
116
+ pageVersionRepository: async (cfg, logger) => {
117
+ const eff = RepositoryFactoryPageVersion.create({
118
+ repositoryConfig: cfg.pageVersionRepositoryConfig,
119
+ logger,
120
+ logLevel: cfg.logLevel,
121
+ });
122
+ return await Effect.runPromise(eff);
123
+ },
124
+ documentIndexEntryRepository: async (cfg, logger) => {
125
+ const eff = RepositoryFactoryDocumentIndexEntry.create({
126
+ repositoryConfig: cfg.documentIndexEntryRepositoryConfig,
127
+ logger,
128
+ logLevel: cfg.logLevel,
129
+ });
130
+ return await Effect.runPromise(eff);
131
+ },
132
+ documentSectionLinkRepository: async (cfg, logger) => {
133
+ const eff = RepositoryFactoryDocumentSectionLink.create({
134
+ repositoryConfig: cfg.documentSectionLinkRepositoryConfig,
135
+ logger,
136
+ logLevel: cfg.logLevel,
137
+ });
138
+ return await Effect.runPromise(eff);
139
+ },
140
+ sectionPageLinkRepository: async (cfg, logger) => {
141
+ const eff = RepositoryFactorySectionPageLink.create({
142
+ repositoryConfig: cfg.sectionPageLinkRepositoryConfig,
143
+ logger,
144
+ logLevel: cfg.logLevel,
145
+ });
146
+ return await Effect.runPromise(eff);
147
+ },
148
+ snippetRepository: async (cfg, logger) => {
149
+ const eff = RepositoryFactorySnippet.create({
150
+ repositoryConfig: cfg.snippetRepositoryConfig,
151
+ logger,
152
+ logLevel: cfg.logLevel,
153
+ });
154
+ return await Effect.runPromise(eff);
155
+ },
156
+ pageSnippetLinkRepository: async (cfg, logger) => {
157
+ const eff = RepositoryFactoryPageSnippetLink.create({
158
+ repositoryConfig: cfg.pageSnippetLinkRepositoryConfig,
159
+ logger,
160
+ logLevel: cfg.logLevel,
161
+ });
162
+ return await Effect.runPromise(eff);
163
+ },
164
+ assetRepository: async (cfg, logger) => {
165
+ const eff = RepositoryFactoryAsset.create({
166
+ repositoryConfig: cfg.assetRepositoryConfig,
167
+ logger,
168
+ logLevel: cfg.logLevel,
169
+ });
170
+ return await Effect.runPromise(eff);
171
+ },
172
+ assetVersionRepository: async (cfg, logger) => {
173
+ const eff = RepositoryFactoryAssetVersion.create({
174
+ repositoryConfig: cfg.assetVersionRepositoryConfig,
175
+ logger,
176
+ logLevel: cfg.logLevel,
177
+ });
178
+ return await Effect.runPromise(eff);
179
+ },
180
+ embedRepository: async (cfg, logger) => {
181
+ const eff = RepositoryFactoryEmbed.create({
182
+ repositoryConfig: cfg.embedRepositoryConfig,
183
+ logger,
184
+ logLevel: cfg.logLevel,
185
+ });
186
+ return await Effect.runPromise(eff);
187
+ },
188
+ pageEmbedLinkRepository: async (cfg, logger) => {
189
+ const eff = RepositoryFactoryPageEmbedLink.create({
190
+ repositoryConfig: cfg.pageEmbedLinkRepositoryConfig,
191
+ logger,
192
+ logLevel: cfg.logLevel,
193
+ });
194
+ return await Effect.runPromise(eff);
195
+ }
196
+ },
197
+ services: {
198
+ documentService: async (ctx, _deps, repos, logger) => {
199
+ return new DocumentService({
200
+ documentRepository: repos.documentRepository,
201
+ serviceDependencies: {
202
+ assetRepository: repos.assetRepository,
203
+ assetVersionRepository: repos.assetVersionRepository,
204
+ documentVersionRepository: repos.documentVersionRepository,
205
+ documentSectionLinkRepository: repos.documentSectionLinkRepository,
206
+ documentIndexEntryRepository: repos.documentIndexEntryRepository,
207
+ sectionRepository: repos.sectionRepository,
208
+ pageRepository: repos.pageRepository,
209
+ pageVersionRepository: repos.pageVersionRepository,
210
+ sectionPageLinkRepository: repos.sectionPageLinkRepository,
211
+ pageSnippetLinkRepository: repos.pageSnippetLinkRepository,
212
+ pageEmbedLinkRepository: repos.pageEmbedLinkRepository,
213
+ },
214
+ logger,
215
+ locale: ctx.locale,
216
+ });
217
+ },
218
+ documentGroupService: async (ctx, _deps, repos, logger) => {
219
+ return new DocumentGroupService({
220
+ documentGroupRepository: repos.documentGroupRepository,
221
+ logger,
222
+ locale: ctx.locale,
223
+ });
224
+ },
225
+ documentVersionService: async (ctx, _deps, repos, logger) => {
226
+ return new DocumentVersionService({
227
+ documentVersionRepository: repos.documentVersionRepository,
228
+ serviceDependencies: {
229
+ documentRepository: repos.documentRepository,
230
+ documentSectionLinkRepository: repos.documentSectionLinkRepository,
231
+ sectionRepository: repos.sectionRepository,
232
+ pageRepository: repos.pageRepository,
233
+ pageVersionRepository: repos.pageVersionRepository,
234
+ sectionPageLinkRepository: repos.sectionPageLinkRepository,
235
+ pageSnippetLinkRepository: repos.pageSnippetLinkRepository,
236
+ pageEmbedLinkRepository: repos.pageEmbedLinkRepository,
237
+ },
238
+ unitOfWork: createDocmanUnitOfWork(repos.documentVersionRepository.getRepositoryConfig()),
239
+ logger,
240
+ locale: ctx.locale,
241
+ });
242
+ },
243
+ sectionService: async (ctx, _deps, repos, logger) => {
244
+ return new SectionService({
245
+ sectionRepository: repos.sectionRepository,
246
+ logger,
247
+ locale: ctx.locale,
248
+ });
249
+ },
250
+ pageService: async (ctx, _deps, repos, logger) => {
251
+ return new PageService({
252
+ pageRepository: repos.pageRepository,
253
+ logger,
254
+ locale: ctx.locale,
255
+ });
256
+ },
257
+ pageVersionService: async (ctx, _deps, repos, logger) => {
258
+ return new PageVersionService({
259
+ pageVersionRepository: repos.pageVersionRepository,
260
+ serviceDependencies: {
261
+ documentSectionLinkRepository: repos.documentSectionLinkRepository,
262
+ sectionPageLinkRepository: repos.sectionPageLinkRepository,
263
+ },
264
+ logger,
265
+ locale: ctx.locale,
266
+ });
267
+ },
268
+ documentSectionLinkService: async (ctx, _deps, repos, logger) => {
269
+ return new DocumentSectionLinkService({
270
+ documentSectionLinkRepository: repos.documentSectionLinkRepository,
271
+ logger,
272
+ locale: ctx.locale,
273
+ });
274
+ },
275
+ sectionPageLinkService: async (ctx, _deps, repos, logger) => {
276
+ return new SectionPageLinkService({
277
+ sectionPageLinkRepository: repos.sectionPageLinkRepository,
278
+ logger,
279
+ locale: ctx.locale,
280
+ });
281
+ },
282
+ snippetService: async (ctx, _deps, repos, logger) => {
283
+ return new SnippetService({
284
+ snippetRepository: repos.snippetRepository,
285
+ logger,
286
+ locale: ctx.locale,
287
+ });
288
+ },
289
+ pageSnippetLinkService: async (ctx, _deps, repos, logger) => {
290
+ return new PageSnippetLinkService({
291
+ pageSnippetLinkRepository: repos.pageSnippetLinkRepository,
292
+ logger,
293
+ locale: ctx.locale,
294
+ });
295
+ },
296
+ assetService: async (ctx, _deps, repos, logger) => {
297
+ return new AssetService({
298
+ assetRepository: repos.assetRepository,
299
+ logger,
300
+ locale: ctx.locale,
301
+ });
302
+ },
303
+ assetVersionService: async (ctx, _deps, repos, logger) => {
304
+ return new AssetVersionService({
305
+ assetVersionRepository: repos.assetVersionRepository,
306
+ logger,
307
+ locale: ctx.locale,
308
+ });
309
+ },
310
+ embedService: async (ctx, _deps, repos, logger) => {
311
+ return new EmbedService({
312
+ embedRepository: repos.embedRepository,
313
+ logger,
314
+ locale: ctx.locale,
315
+ });
316
+ },
317
+ pageEmbedLinkService: async (ctx, _deps, repos, logger) => {
318
+ return new PageEmbedLinkService({
319
+ pageEmbedLinkRepository: repos.pageEmbedLinkRepository,
320
+ logger,
321
+ locale: ctx.locale,
322
+ });
323
+ }
324
+ },
325
+ cache: options.cache,
326
+ metrics: options.metrics,
327
+ resilience: options.resilience,
328
+ transformService: options.transformService,
329
+ });
330
+ function toStats() {
331
+ const stats = gp.getStats();
332
+ return {
333
+ name: stats.name,
334
+ configKey: stats.configKey,
335
+ services: {
336
+ documentService: stats.services.documentService,
337
+ documentGroupService: stats.services.documentGroupService,
338
+ documentVersionService: stats.services.documentVersionService,
339
+ sectionService: stats.services.sectionService,
340
+ pageService: stats.services.pageService,
341
+ pageVersionService: stats.services.pageVersionService,
342
+ documentSectionLinkService: stats.services.documentSectionLinkService,
343
+ sectionPageLinkService: stats.services.sectionPageLinkService,
344
+ snippetService: stats.services.snippetService,
345
+ pageSnippetLinkService: stats.services.pageSnippetLinkService,
346
+ assetService: stats.services.assetService,
347
+ assetVersionService: stats.services.assetVersionService,
348
+ embedService: stats.services.embedService,
349
+ pageEmbedLinkService: stats.services.pageEmbedLinkService,
350
+ },
351
+ repositories: {
352
+ documentRepository: !!stats.repositories.documentRepository,
353
+ documentGroupRepository: !!stats.repositories.documentGroupRepository,
354
+ documentVersionRepository: !!stats.repositories.documentVersionRepository,
355
+ sectionRepository: !!stats.repositories.sectionRepository,
356
+ pageRepository: !!stats.repositories.pageRepository,
357
+ pageVersionRepository: !!stats.repositories.pageVersionRepository,
358
+ documentIndexEntryRepository: !!stats.repositories.documentIndexEntryRepository,
359
+ documentSectionLinkRepository: !!stats.repositories.documentSectionLinkRepository,
360
+ sectionPageLinkRepository: !!stats.repositories.sectionPageLinkRepository,
361
+ snippetRepository: !!stats.repositories.snippetRepository,
362
+ pageSnippetLinkRepository: !!stats.repositories.pageSnippetLinkRepository,
363
+ assetRepository: !!stats.repositories.assetRepository,
364
+ assetVersionRepository: !!stats.repositories.assetVersionRepository,
365
+ embedRepository: !!stats.repositories.embedRepository,
366
+ pageEmbedLinkRepository: !!stats.repositories.pageEmbedLinkRepository,
367
+ },
368
+ };
369
+ }
370
+ return {
371
+ async getDocumentService(overrides) {
372
+ return gp.getService('documentService', overrides);
373
+ },
374
+ async createDocumentService(overrides) {
375
+ return gp.createService('documentService', overrides);
376
+ },
377
+ async getDocumentGroupService(overrides) {
378
+ return gp.getService('documentGroupService', overrides);
379
+ },
380
+ async createDocumentGroupService(overrides) {
381
+ return gp.createService('documentGroupService', overrides);
382
+ },
383
+ async getDocumentVersionService(overrides) {
384
+ return gp.getService('documentVersionService', overrides);
385
+ },
386
+ async createDocumentVersionService(overrides) {
387
+ return gp.createService('documentVersionService', overrides);
388
+ },
389
+ async getSectionService(overrides) {
390
+ return gp.getService('sectionService', overrides);
391
+ },
392
+ async createSectionService(overrides) {
393
+ return gp.createService('sectionService', overrides);
394
+ },
395
+ async getPageService(overrides) {
396
+ return gp.getService('pageService', overrides);
397
+ },
398
+ async createPageService(overrides) {
399
+ return gp.createService('pageService', overrides);
400
+ },
401
+ async getPageVersionService(overrides) {
402
+ return gp.getService('pageVersionService', overrides);
403
+ },
404
+ async createPageVersionService(overrides) {
405
+ return gp.createService('pageVersionService', overrides);
406
+ },
407
+ async getDocumentSectionLinkService(overrides) {
408
+ return gp.getService('documentSectionLinkService', overrides);
409
+ },
410
+ async createDocumentSectionLinkService(overrides) {
411
+ return gp.createService('documentSectionLinkService', overrides);
412
+ },
413
+ async getSectionPageLinkService(overrides) {
414
+ return gp.getService('sectionPageLinkService', overrides);
415
+ },
416
+ async createSectionPageLinkService(overrides) {
417
+ return gp.createService('sectionPageLinkService', overrides);
418
+ },
419
+ async getSnippetService(overrides) {
420
+ return gp.getService('snippetService', overrides);
421
+ },
422
+ async createSnippetService(overrides) {
423
+ return gp.createService('snippetService', overrides);
424
+ },
425
+ async getPageSnippetLinkService(overrides) {
426
+ return gp.getService('pageSnippetLinkService', overrides);
427
+ },
428
+ async createPageSnippetLinkService(overrides) {
429
+ return gp.createService('pageSnippetLinkService', overrides);
430
+ },
431
+ async getAssetService(overrides) {
432
+ return gp.getService('assetService', overrides);
433
+ },
434
+ async createAssetService(overrides) {
435
+ return gp.createService('assetService', overrides);
436
+ },
437
+ async getAssetVersionService(overrides) {
438
+ return gp.getService('assetVersionService', overrides);
439
+ },
440
+ async createAssetVersionService(overrides) {
441
+ return gp.createService('assetVersionService', overrides);
442
+ },
443
+ async getEmbedService(overrides) {
444
+ return gp.getService('embedService', overrides);
445
+ },
446
+ async createEmbedService(overrides) {
447
+ return gp.createService('embedService', overrides);
448
+ },
449
+ async getPageEmbedLinkService(overrides) {
450
+ return gp.getService('pageEmbedLinkService', overrides);
451
+ },
452
+ async createPageEmbedLinkService(overrides) {
453
+ return gp.createService('pageEmbedLinkService', overrides);
454
+ },
455
+ async getDocumentRepository(overrides) {
456
+ return gp.getRepository('documentRepository', overrides);
457
+ },
458
+ async getDocumentGroupRepository(overrides) {
459
+ return gp.getRepository('documentGroupRepository', overrides);
460
+ },
461
+ async getDocumentVersionRepository(overrides) {
462
+ return gp.getRepository('documentVersionRepository', overrides);
463
+ },
464
+ async getSectionRepository(overrides) {
465
+ return gp.getRepository('sectionRepository', overrides);
466
+ },
467
+ async getPageRepository(overrides) {
468
+ return gp.getRepository('pageRepository', overrides);
469
+ },
470
+ async getPageVersionRepository(overrides) {
471
+ return gp.getRepository('pageVersionRepository', overrides);
472
+ },
473
+ async getDocumentIndexEntryRepository(overrides) {
474
+ return gp.getRepository('documentIndexEntryRepository', overrides);
475
+ },
476
+ async getDocumentSectionLinkRepository(overrides) {
477
+ return gp.getRepository('documentSectionLinkRepository', overrides);
478
+ },
479
+ async getSectionPageLinkRepository(overrides) {
480
+ return gp.getRepository('sectionPageLinkRepository', overrides);
481
+ },
482
+ async getSnippetRepository(overrides) {
483
+ return gp.getRepository('snippetRepository', overrides);
484
+ },
485
+ async getPageSnippetLinkRepository(overrides) {
486
+ return gp.getRepository('pageSnippetLinkRepository', overrides);
487
+ },
488
+ async getAssetRepository(overrides) {
489
+ return gp.getRepository('assetRepository', overrides);
490
+ },
491
+ async getAssetVersionRepository(overrides) {
492
+ return gp.getRepository('assetVersionRepository', overrides);
493
+ },
494
+ async getEmbedRepository(overrides) {
495
+ return gp.getRepository('embedRepository', overrides);
496
+ },
497
+ async getPageEmbedLinkRepository(overrides) {
498
+ return gp.getRepository('pageEmbedLinkRepository', overrides);
499
+ },
500
+ async getAll(overrides) {
501
+ return gp.getAll(overrides);
502
+ },
503
+ async createAll(overrides) {
504
+ return gp.createAll(overrides);
505
+ },
506
+ clearServiceCache(cacheKey) {
507
+ gp.clearCache(cacheKey);
508
+ },
509
+ clearDocumentServiceCache(cacheKey) {
510
+ gp.clearServiceCache('documentService', cacheKey);
511
+ },
512
+ clearDocumentGroupServiceCache(cacheKey) {
513
+ gp.clearServiceCache('documentGroupService', cacheKey);
514
+ },
515
+ clearDocumentVersionServiceCache(cacheKey) {
516
+ gp.clearServiceCache('documentVersionService', cacheKey);
517
+ },
518
+ clearSectionServiceCache(cacheKey) {
519
+ gp.clearServiceCache('sectionService', cacheKey);
520
+ },
521
+ clearPageServiceCache(cacheKey) {
522
+ gp.clearServiceCache('pageService', cacheKey);
523
+ },
524
+ clearPageVersionServiceCache(cacheKey) {
525
+ gp.clearServiceCache('pageVersionService', cacheKey);
526
+ },
527
+ clearDocumentSectionLinkServiceCache(cacheKey) {
528
+ gp.clearServiceCache('documentSectionLinkService', cacheKey);
529
+ },
530
+ clearSectionPageLinkServiceCache(cacheKey) {
531
+ gp.clearServiceCache('sectionPageLinkService', cacheKey);
532
+ },
533
+ clearSnippetServiceCache(cacheKey) {
534
+ gp.clearServiceCache('snippetService', cacheKey);
535
+ },
536
+ clearPageSnippetLinkServiceCache(cacheKey) {
537
+ gp.clearServiceCache('pageSnippetLinkService', cacheKey);
538
+ },
539
+ clearAssetServiceCache(cacheKey) {
540
+ gp.clearServiceCache('assetService', cacheKey);
541
+ },
542
+ clearAssetVersionServiceCache(cacheKey) {
543
+ gp.clearServiceCache('assetVersionService', cacheKey);
544
+ },
545
+ clearEmbedServiceCache(cacheKey) {
546
+ gp.clearServiceCache('embedService', cacheKey);
547
+ },
548
+ clearPageEmbedLinkServiceCache(cacheKey) {
549
+ gp.clearServiceCache('pageEmbedLinkService', cacheKey);
550
+ },
551
+ reset(options) {
552
+ gp.reset(options);
553
+ },
554
+ getRegistryStats() {
555
+ return toStats();
556
+ },
557
+ async resolveLogger(overrides) {
558
+ if (!options.resolveLogger)
559
+ return undefined;
560
+ const base = await Promise.resolve(options.getContext(overrides));
561
+ return options.resolveLogger({ ...base, ...(overrides ?? {}) });
562
+ },
563
+ };
564
+ }
@@ -0,0 +1,6 @@
1
+ import type { DocmanKitProviderOptions } from './types.js';
2
+ /**
3
+ * Resilience/policy preset'lerini tek yerde toplayın.
4
+ * Örn. retry/breaker/timeouts veya cache ayarları.
5
+ */
6
+ export declare const defaultDocmanKitResilience: Pick<DocmanKitProviderOptions, 'resilience' | 'cache'>;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Resilience/policy preset'lerini tek yerde toplayın.
3
+ * Örn. retry/breaker/timeouts veya cache ayarları.
4
+ */
5
+ export const defaultDocmanKitResilience = {
6
+ resilience: {
7
+ services: {
8
+ // retry: { maxRetries: 3, delayMs: 50 },
9
+ // timeoutMs: 5_000,
10
+ },
11
+ repositories: {
12
+ // retry: { maxRetries: 2, delayMs: 25 },
13
+ // timeoutMs: 3_000,
14
+ },
15
+ },
16
+ cache: {
17
+ // ttlMs: 5 * 60 * 1000,
18
+ },
19
+ };