nx-content-store 0.1.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 (110) hide show
  1. package/README.md +45 -0
  2. package/dist/core/ManagedContentStore.d.ts +20 -0
  3. package/dist/core/ManagedContentStore.d.ts.map +1 -0
  4. package/dist/core/ManagedContentStore.js +2 -0
  5. package/dist/core/ManagedContentStore.js.map +1 -0
  6. package/dist/core/createManagedContentStore.d.ts +14 -0
  7. package/dist/core/createManagedContentStore.d.ts.map +1 -0
  8. package/dist/core/createManagedContentStore.js +127 -0
  9. package/dist/core/createManagedContentStore.js.map +1 -0
  10. package/dist/errors/errors.d.ts +32 -0
  11. package/dist/errors/errors.d.ts.map +1 -0
  12. package/dist/errors/errors.js +69 -0
  13. package/dist/errors/errors.js.map +1 -0
  14. package/dist/index.d.ts +23 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +12 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/orchestration/StorePersistenceAdapter.d.ts +25 -0
  19. package/dist/orchestration/StorePersistenceAdapter.d.ts.map +1 -0
  20. package/dist/orchestration/StorePersistenceAdapter.js +2 -0
  21. package/dist/orchestration/StorePersistenceAdapter.js.map +1 -0
  22. package/dist/orchestration/persistenceMappings.d.ts +16 -0
  23. package/dist/orchestration/persistenceMappings.d.ts.map +1 -0
  24. package/dist/orchestration/persistenceMappings.js +23 -0
  25. package/dist/orchestration/persistenceMappings.js.map +1 -0
  26. package/dist/services/AuthorizationService.d.ts +16 -0
  27. package/dist/services/AuthorizationService.d.ts.map +1 -0
  28. package/dist/services/AuthorizationService.js +2 -0
  29. package/dist/services/AuthorizationService.js.map +1 -0
  30. package/dist/services/BackendsService.d.ts +7 -0
  31. package/dist/services/BackendsService.d.ts.map +1 -0
  32. package/dist/services/BackendsService.js +2 -0
  33. package/dist/services/BackendsService.js.map +1 -0
  34. package/dist/services/ContentService.d.ts +11 -0
  35. package/dist/services/ContentService.d.ts.map +1 -0
  36. package/dist/services/ContentService.js +2 -0
  37. package/dist/services/ContentService.js.map +1 -0
  38. package/dist/services/DiagnosticsService.d.ts +5 -0
  39. package/dist/services/DiagnosticsService.d.ts.map +1 -0
  40. package/dist/services/DiagnosticsService.js +2 -0
  41. package/dist/services/DiagnosticsService.js.map +1 -0
  42. package/dist/services/RevisionsService.d.ts +7 -0
  43. package/dist/services/RevisionsService.d.ts.map +1 -0
  44. package/dist/services/RevisionsService.js +2 -0
  45. package/dist/services/RevisionsService.js.map +1 -0
  46. package/dist/services/StoreKeysService.d.ts +8 -0
  47. package/dist/services/StoreKeysService.d.ts.map +1 -0
  48. package/dist/services/StoreKeysService.js +2 -0
  49. package/dist/services/StoreKeysService.js.map +1 -0
  50. package/dist/services/StoresService.d.ts +10 -0
  51. package/dist/services/StoresService.d.ts.map +1 -0
  52. package/dist/services/StoresService.js +2 -0
  53. package/dist/services/StoresService.js.map +1 -0
  54. package/dist/services/SyncService.d.ts +8 -0
  55. package/dist/services/SyncService.d.ts.map +1 -0
  56. package/dist/services/SyncService.js +2 -0
  57. package/dist/services/SyncService.js.map +1 -0
  58. package/dist/types/auth.d.ts +12 -0
  59. package/dist/types/auth.d.ts.map +1 -0
  60. package/dist/types/auth.js +2 -0
  61. package/dist/types/auth.js.map +1 -0
  62. package/dist/types/backends.d.ts +30 -0
  63. package/dist/types/backends.d.ts.map +1 -0
  64. package/dist/types/backends.js +2 -0
  65. package/dist/types/backends.js.map +1 -0
  66. package/dist/types/common.d.ts +11 -0
  67. package/dist/types/common.d.ts.map +1 -0
  68. package/dist/types/common.js +2 -0
  69. package/dist/types/common.js.map +1 -0
  70. package/dist/types/content.d.ts +71 -0
  71. package/dist/types/content.d.ts.map +1 -0
  72. package/dist/types/content.js +2 -0
  73. package/dist/types/content.js.map +1 -0
  74. package/dist/types/diagnostics.d.ts +11 -0
  75. package/dist/types/diagnostics.d.ts.map +1 -0
  76. package/dist/types/diagnostics.js +2 -0
  77. package/dist/types/diagnostics.js.map +1 -0
  78. package/dist/types/index.d.ts +10 -0
  79. package/dist/types/index.d.ts.map +1 -0
  80. package/dist/types/index.js +10 -0
  81. package/dist/types/index.js.map +1 -0
  82. package/dist/types/keys.d.ts +47 -0
  83. package/dist/types/keys.d.ts.map +1 -0
  84. package/dist/types/keys.js +2 -0
  85. package/dist/types/keys.js.map +1 -0
  86. package/dist/types/revisions.d.ts +40 -0
  87. package/dist/types/revisions.d.ts.map +1 -0
  88. package/dist/types/revisions.js +2 -0
  89. package/dist/types/revisions.js.map +1 -0
  90. package/dist/types/store.d.ts +91 -0
  91. package/dist/types/store.d.ts.map +1 -0
  92. package/dist/types/store.js +2 -0
  93. package/dist/types/store.js.map +1 -0
  94. package/dist/types/sync.d.ts +56 -0
  95. package/dist/types/sync.d.ts.map +1 -0
  96. package/dist/types/sync.js +2 -0
  97. package/dist/types/sync.js.map +1 -0
  98. package/dist/utils/formats.d.ts +19 -0
  99. package/dist/utils/formats.d.ts.map +1 -0
  100. package/dist/utils/formats.js +32 -0
  101. package/dist/utils/formats.js.map +1 -0
  102. package/dist/utils/keys.d.ts +9 -0
  103. package/dist/utils/keys.d.ts.map +1 -0
  104. package/dist/utils/keys.js +15 -0
  105. package/dist/utils/keys.js.map +1 -0
  106. package/dist/utils/selectors.d.ts +27 -0
  107. package/dist/utils/selectors.d.ts.map +1 -0
  108. package/dist/utils/selectors.js +35 -0
  109. package/dist/utils/selectors.js.map +1 -0
  110. package/package.json +38 -0
package/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # nx-content-store
2
+
3
+ Managed shared-store platform for content: stores, keys, content CRUD, revisions, backends, and sync. Generic and not aiFunctions-specific; ready for use by `nx-content-store-server` and clients.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install nx-content-store
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import {
15
+ createManagedContentStore,
16
+ type StorePersistenceAdapter,
17
+ type ManagedContentStore,
18
+ } from 'nx-content-store';
19
+
20
+ // Provide a persistence adapter (e.g. from xronox-content-store).
21
+ const store: ManagedContentStore = createManagedContentStore({
22
+ persistence: myPersistenceAdapter,
23
+ authorization: myAuthService, // optional
24
+ diagnostics: myDiagnostics, // optional
25
+ });
26
+
27
+ await store.stores.create({ storeId: 'my-store', slug: 'my-store', name: 'My Store', visibility: 'private', authPolicy: { read: 'secret-key', write: 'secret-key', admin: 'secret-key' }, backendPolicy: { readOrder: ['default'], writePrimary: 'default' } });
28
+ const s = await store.stores.get('my-store');
29
+ await store.content.set({ storeId: 'my-store', key: 'docs/readme.md' }, { content: '# Hello', format: 'md' });
30
+ const text = await store.content.get({ storeId: 'my-store', key: 'docs/readme.md' });
31
+ ```
32
+
33
+ ## Public API
34
+
35
+ - **Factory:** `createManagedContentStore({ persistence, authorization?, diagnostics? })` → `ManagedContentStore`
36
+ - **Facade:** `ManagedContentStore` — `stores`, `keys`, `content`, `revisions`, `backends`, `sync`, `diagnostics`
37
+ - **Types:** Store, key, content selector/entry, revision, backend binding, sync run, request context, and all input/result types
38
+ - **Errors:** `ContentStoreError`, `StoreNotFoundError`, `ContentConflictError`, etc.
39
+ - **Utils:** `normalizeKey`, `normalizeFormat`, `resolveSelector`, etc.
40
+
41
+ Persistence is injected; no xronox types are exposed. Key/namespace/format normalization and variant fallback are applied in the core.
42
+
43
+ ## License
44
+
45
+ UNLICENSED
@@ -0,0 +1,20 @@
1
+ import type { StoresService } from '../services/StoresService.js';
2
+ import type { StoreKeysService } from '../services/StoreKeysService.js';
3
+ import type { ContentService } from '../services/ContentService.js';
4
+ import type { RevisionsService } from '../services/RevisionsService.js';
5
+ import type { BackendsService } from '../services/BackendsService.js';
6
+ import type { SyncService } from '../services/SyncService.js';
7
+ import type { DiagnosticsService } from '../services/DiagnosticsService.js';
8
+ /**
9
+ * Main public API surface for the core package.
10
+ */
11
+ export interface ManagedContentStore {
12
+ stores: StoresService;
13
+ keys: StoreKeysService;
14
+ content: ContentService;
15
+ revisions: RevisionsService;
16
+ backends: BackendsService;
17
+ sync: SyncService;
18
+ diagnostics: DiagnosticsService;
19
+ }
20
+ //# sourceMappingURL=ManagedContentStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManagedContentStore.d.ts","sourceRoot":"","sources":["../../src/core/ManagedContentStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,kBAAkB,CAAC;CACjC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ManagedContentStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManagedContentStore.js","sourceRoot":"","sources":["../../src/core/ManagedContentStore.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { StorePersistenceAdapter } from '../orchestration/StorePersistenceAdapter.js';
2
+ import type { AuthorizationService } from '../services/AuthorizationService.js';
3
+ import type { DiagnosticsService } from '../services/DiagnosticsService.js';
4
+ import type { ManagedContentStore } from './ManagedContentStore.js';
5
+ /**
6
+ * Creates a ManagedContentStore that orchestrates persistence with key/namespace/format
7
+ * normalization and optional variant fallback. No xronox types are exposed.
8
+ */
9
+ export declare function createManagedContentStore(input: {
10
+ persistence: StorePersistenceAdapter;
11
+ authorization?: AuthorizationService;
12
+ diagnostics?: DiagnosticsService;
13
+ }): ManagedContentStore;
14
+ //# sourceMappingURL=createManagedContentStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createManagedContentStore.d.ts","sourceRoot":"","sources":["../../src/core/createManagedContentStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKpE;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,WAAW,EAAE,uBAAuB,CAAC;IACrC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC,GAAG,mBAAmB,CAsJtB"}
@@ -0,0 +1,127 @@
1
+ import { resolveSelector } from '../utils/selectors.js';
2
+ import { normalizeFormat } from '../utils/formats.js';
3
+ import { StoreNotFoundError } from '../errors/errors.js';
4
+ /**
5
+ * Creates a ManagedContentStore that orchestrates persistence with key/namespace/format
6
+ * normalization and optional variant fallback. No xronox types are exposed.
7
+ */
8
+ export function createManagedContentStore(input) {
9
+ const { persistence, diagnostics: diagnosticsOverride } = input;
10
+ async function getStore(storeId) {
11
+ return persistence.stores.get(storeId);
12
+ }
13
+ async function requireStore(storeId) {
14
+ const store = await getStore(storeId);
15
+ if (!store)
16
+ throw new StoreNotFoundError(`Store not found: ${storeId}`);
17
+ return store;
18
+ }
19
+ function toResolvedSelector(selector, store) {
20
+ const resolved = resolveSelector(selector, store);
21
+ return {
22
+ storeId: resolved.storeId,
23
+ namespace: resolved.namespace,
24
+ key: resolved.key,
25
+ variant: resolved.variant,
26
+ };
27
+ }
28
+ const contentWithNormalization = {
29
+ async get(selector, options) {
30
+ const store = await requireStore(selector.storeId);
31
+ const resolved = toResolvedSelector(selector, store);
32
+ if (store.settings?.variantFallback && resolved.variant != null) {
33
+ const withVariant = await persistence.content.get(resolved, options);
34
+ if (withVariant != null)
35
+ return withVariant;
36
+ return persistence.content.get({ ...resolved, variant: null }, options);
37
+ }
38
+ return persistence.content.get(resolved, options);
39
+ },
40
+ async getEntry(selector, options) {
41
+ const store = await requireStore(selector.storeId);
42
+ const resolved = toResolvedSelector(selector, store);
43
+ if (store.settings?.variantFallback && resolved.variant != null) {
44
+ const withVariant = await persistence.content.getEntry(resolved, options);
45
+ if (withVariant != null)
46
+ return withVariant;
47
+ return persistence.content.getEntry({ ...resolved, variant: null }, options);
48
+ }
49
+ return persistence.content.getEntry(resolved, options);
50
+ },
51
+ async exists(selector) {
52
+ const store = await requireStore(selector.storeId);
53
+ const resolved = toResolvedSelector(selector, store);
54
+ if (store.settings?.variantFallback && resolved.variant != null) {
55
+ const withVariant = await persistence.content.exists(resolved);
56
+ if (withVariant)
57
+ return true;
58
+ return persistence.content.exists({ ...resolved, variant: null });
59
+ }
60
+ return persistence.content.exists(resolved);
61
+ },
62
+ async set(selector, setInput, ctx) {
63
+ const store = await requireStore(selector.storeId);
64
+ const resolved = toResolvedSelector(selector, store);
65
+ const format = setInput.format ?? resolveSelector(selector, store).format ?? 'raw';
66
+ return persistence.content.set(resolved, { ...setInput, format: normalizeFormat(format) }, ctx);
67
+ },
68
+ async delete(selector, deleteInput, ctx) {
69
+ const store = await requireStore(selector.storeId);
70
+ const resolved = toResolvedSelector(selector, store);
71
+ return persistence.content.delete(resolved, deleteInput, ctx);
72
+ },
73
+ async listKeys(listInput) {
74
+ if (!listInput)
75
+ return persistence.content.listKeys(undefined);
76
+ const store = await requireStore(listInput.storeId);
77
+ const namespace = listInput.namespace ?? store.defaultNamespace;
78
+ return persistence.content.listKeys({ ...listInput, namespace });
79
+ },
80
+ async listEntries(listInput) {
81
+ if (!listInput)
82
+ return persistence.content.listEntries(undefined);
83
+ const store = await requireStore(listInput.storeId);
84
+ const namespace = listInput.namespace ?? store.defaultNamespace;
85
+ return persistence.content.listEntries({ ...listInput, namespace });
86
+ },
87
+ };
88
+ const revisionsWithNormalization = {
89
+ async list(selector) {
90
+ const store = await requireStore(selector.storeId);
91
+ const resolved = toResolvedSelector(selector, store);
92
+ return persistence.revisions.list(resolved);
93
+ },
94
+ async get(selector, revisionId) {
95
+ const store = await requireStore(selector.storeId);
96
+ const resolved = toResolvedSelector(selector, store);
97
+ return persistence.revisions.get(resolved, revisionId);
98
+ },
99
+ async activate(selector, activateInput, ctx) {
100
+ const store = await requireStore(selector.storeId);
101
+ const resolved = toResolvedSelector(selector, store);
102
+ return persistence.revisions.activate(resolved, activateInput, ctx);
103
+ },
104
+ };
105
+ const storesWithDefaults = {
106
+ async create(createInput, ctx) {
107
+ const defaultNamespace = createInput.defaultNamespace ?? 'default';
108
+ return persistence.stores.create({ ...createInput, defaultNamespace }, ctx);
109
+ },
110
+ get: (storeId) => persistence.stores.get(storeId),
111
+ list: (input) => persistence.stores.list(input),
112
+ update: (storeId, patch, ctx) => persistence.stores.update(storeId, patch, ctx),
113
+ disable: (storeId, ctx) => persistence.stores.disable(storeId, ctx),
114
+ archive: (storeId, ctx) => persistence.stores.archive(storeId, ctx),
115
+ };
116
+ const diagnostics = diagnosticsOverride ?? persistence.diagnostics;
117
+ return {
118
+ stores: storesWithDefaults,
119
+ keys: persistence.keys,
120
+ content: contentWithNormalization,
121
+ revisions: revisionsWithNormalization,
122
+ backends: persistence.backends,
123
+ sync: persistence.sync,
124
+ diagnostics,
125
+ };
126
+ }
127
+ //# sourceMappingURL=createManagedContentStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createManagedContentStore.js","sourceRoot":"","sources":["../../src/core/createManagedContentStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Base error for content store operations.
3
+ */
4
+ export declare class ContentStoreError extends Error {
5
+ readonly code: string;
6
+ constructor(message: string, code: string);
7
+ }
8
+ export declare class StoreNotFoundError extends ContentStoreError {
9
+ constructor(message?: string);
10
+ }
11
+ export declare class StoreUnauthorizedError extends ContentStoreError {
12
+ constructor(message?: string);
13
+ }
14
+ export declare class StoreForbiddenError extends ContentStoreError {
15
+ constructor(message?: string);
16
+ }
17
+ export declare class ContentNotFoundError extends ContentStoreError {
18
+ constructor(message?: string);
19
+ }
20
+ export declare class ContentConflictError extends ContentStoreError {
21
+ constructor(message?: string);
22
+ }
23
+ export declare class ContentValidationError extends ContentStoreError {
24
+ constructor(message?: string);
25
+ }
26
+ export declare class BackendUnavailableError extends ContentStoreError {
27
+ constructor(message?: string);
28
+ }
29
+ export declare class SyncError extends ContentStoreError {
30
+ constructor(message?: string);
31
+ }
32
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAM1C;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,OAAO,GAAE,MAA0B;CAKhD;AAED,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,GAAE,MAAoC;CAK1D;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;gBAC5C,OAAO,GAAE,MAAiC;CAKvD;AAED,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAC7C,OAAO,GAAE,MAA4B;CAKlD;AAED,qBAAa,oBAAqB,SAAQ,iBAAiB;gBAC7C,OAAO,GAAE,MAA2B;CAKjD;AAED,qBAAa,sBAAuB,SAAQ,iBAAiB;gBAC/C,OAAO,GAAE,MAAoC;CAK1D;AAED,qBAAa,uBAAwB,SAAQ,iBAAiB;gBAChD,OAAO,GAAE,MAA8B;CAKpD;AAED,qBAAa,SAAU,SAAQ,iBAAiB;gBAClC,OAAO,GAAE,MAAsB;CAK5C"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Base error for content store operations.
3
+ */
4
+ export class ContentStoreError extends Error {
5
+ code;
6
+ constructor(message, code) {
7
+ super(message);
8
+ this.name = 'ContentStoreError';
9
+ this.code = code;
10
+ Object.setPrototypeOf(this, ContentStoreError.prototype);
11
+ }
12
+ }
13
+ export class StoreNotFoundError extends ContentStoreError {
14
+ constructor(message = 'Store not found') {
15
+ super(message, 'STORE_NOT_FOUND');
16
+ this.name = 'StoreNotFoundError';
17
+ Object.setPrototypeOf(this, StoreNotFoundError.prototype);
18
+ }
19
+ }
20
+ export class StoreUnauthorizedError extends ContentStoreError {
21
+ constructor(message = 'Store access unauthorized') {
22
+ super(message, 'STORE_UNAUTHORIZED');
23
+ this.name = 'StoreUnauthorizedError';
24
+ Object.setPrototypeOf(this, StoreUnauthorizedError.prototype);
25
+ }
26
+ }
27
+ export class StoreForbiddenError extends ContentStoreError {
28
+ constructor(message = 'Store access forbidden') {
29
+ super(message, 'STORE_FORBIDDEN');
30
+ this.name = 'StoreForbiddenError';
31
+ Object.setPrototypeOf(this, StoreForbiddenError.prototype);
32
+ }
33
+ }
34
+ export class ContentNotFoundError extends ContentStoreError {
35
+ constructor(message = 'Content not found') {
36
+ super(message, 'CONTENT_NOT_FOUND');
37
+ this.name = 'ContentNotFoundError';
38
+ Object.setPrototypeOf(this, ContentNotFoundError.prototype);
39
+ }
40
+ }
41
+ export class ContentConflictError extends ContentStoreError {
42
+ constructor(message = 'Content conflict') {
43
+ super(message, 'CONTENT_CONFLICT');
44
+ this.name = 'ContentConflictError';
45
+ Object.setPrototypeOf(this, ContentConflictError.prototype);
46
+ }
47
+ }
48
+ export class ContentValidationError extends ContentStoreError {
49
+ constructor(message = 'Content validation failed') {
50
+ super(message, 'CONTENT_INVALID');
51
+ this.name = 'ContentValidationError';
52
+ Object.setPrototypeOf(this, ContentValidationError.prototype);
53
+ }
54
+ }
55
+ export class BackendUnavailableError extends ContentStoreError {
56
+ constructor(message = 'Backend unavailable') {
57
+ super(message, 'BACKEND_UNAVAILABLE');
58
+ this.name = 'BackendUnavailableError';
59
+ Object.setPrototypeOf(this, BackendUnavailableError.prototype);
60
+ }
61
+ }
62
+ export class SyncError extends ContentStoreError {
63
+ constructor(message = 'Sync failed') {
64
+ super(message, 'SYNC_FAILED');
65
+ this.name = 'SyncError';
66
+ Object.setPrototypeOf(this, SyncError.prototype);
67
+ }
68
+ }
69
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * nx-content-store – managed shared-store platform for content.
3
+ * Exposes types, service interfaces, and a single factory. No xronox or aiFunctions specifics.
4
+ */
5
+ export type { ManagedContentStore } from './core/ManagedContentStore.js';
6
+ export { createManagedContentStore } from './core/createManagedContentStore.js';
7
+ export type { StorePersistenceAdapter, XronoxContentStorePersistenceLike } from './orchestration/StorePersistenceAdapter.js';
8
+ export { PERSISTENCE_SERVICE_KEYS } from './orchestration/persistenceMappings.js';
9
+ export type { PersistenceServiceKey } from './orchestration/persistenceMappings.js';
10
+ export type { StoresService } from './services/StoresService.js';
11
+ export type { StoreKeysService } from './services/StoreKeysService.js';
12
+ export type { ContentService } from './services/ContentService.js';
13
+ export type { RevisionsService } from './services/RevisionsService.js';
14
+ export type { BackendsService } from './services/BackendsService.js';
15
+ export type { SyncService } from './services/SyncService.js';
16
+ export type { DiagnosticsService } from './services/DiagnosticsService.js';
17
+ export type { AuthorizationService } from './services/AuthorizationService.js';
18
+ export * from './types/index.js';
19
+ export * from './errors/errors.js';
20
+ export { normalizeKey, } from './utils/keys.js';
21
+ export { parseKeyAndFormat, normalizeFormat, type ContentFormat, } from './utils/formats.js';
22
+ export { resolveNamespace, normalizeSelectorKey, resolveSelector, } from './utils/selectors.js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,YAAY,EAAE,uBAAuB,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC7H,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAEpF,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EACL,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * nx-content-store – managed shared-store platform for content.
3
+ * Exposes types, service interfaces, and a single factory. No xronox or aiFunctions specifics.
4
+ */
5
+ export { createManagedContentStore } from './core/createManagedContentStore.js';
6
+ export { PERSISTENCE_SERVICE_KEYS } from './orchestration/persistenceMappings.js';
7
+ export * from './types/index.js';
8
+ export * from './errors/errors.js';
9
+ export { normalizeKey, } from './utils/keys.js';
10
+ export { parseKeyAndFormat, normalizeFormat, } from './utils/formats.js';
11
+ export { resolveNamespace, normalizeSelectorKey, resolveSelector, } from './utils/selectors.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAYlF,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EACL,YAAY,GACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,iBAAiB,EACjB,eAAe,GAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,GAChB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { StoresService } from '../services/StoresService.js';
2
+ import type { StoreKeysService } from '../services/StoreKeysService.js';
3
+ import type { ContentService } from '../services/ContentService.js';
4
+ import type { RevisionsService } from '../services/RevisionsService.js';
5
+ import type { BackendsService } from '../services/BackendsService.js';
6
+ import type { SyncService } from '../services/SyncService.js';
7
+ import type { DiagnosticsService } from '../services/DiagnosticsService.js';
8
+ /**
9
+ * Persistence adapter contract used by the core.
10
+ * Implemented by e.g. xronox-content-store; no xronox types leak into this interface.
11
+ */
12
+ export interface StorePersistenceAdapter {
13
+ stores: StoresService;
14
+ keys: StoreKeysService;
15
+ content: ContentService;
16
+ revisions: RevisionsService;
17
+ backends: BackendsService;
18
+ sync: SyncService;
19
+ diagnostics: DiagnosticsService;
20
+ }
21
+ /**
22
+ * Alias for the factory input; implementation is typically from xronox-content-store.
23
+ */
24
+ export type XronoxContentStorePersistenceLike = StorePersistenceAdapter;
25
+ //# sourceMappingURL=StorePersistenceAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorePersistenceAdapter.d.ts","sourceRoot":"","sources":["../../src/orchestration/StorePersistenceAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,iCAAiC,GAAG,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StorePersistenceAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorePersistenceAdapter.js","sourceRoot":"","sources":["../../src/orchestration/StorePersistenceAdapter.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Mapping from core service calls to persistence layer (e.g. xronox-content-store).
3
+ *
4
+ * - stores.* -> StoresRepository
5
+ * - keys.* -> StoreKeysRepository + StoreKeyService
6
+ * - content.* -> RevisionedContentService
7
+ * - revisions.* -> ContentRevisionsRepository + RevisionedContentService
8
+ * - backends.* -> BackendBindingsRepository
9
+ * - sync.* -> SyncRunsRepository
10
+ * - diagnostics.* -> bootstrap/readiness helpers
11
+ *
12
+ * This package does not expose xronox engine IDs, transaction objects, or collection names.
13
+ */
14
+ export declare const PERSISTENCE_SERVICE_KEYS: readonly ["stores", "keys", "content", "revisions", "backends", "sync", "diagnostics"];
15
+ export type PersistenceServiceKey = (typeof PERSISTENCE_SERVICE_KEYS)[number];
16
+ //# sourceMappingURL=persistenceMappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistenceMappings.d.ts","sourceRoot":"","sources":["../../src/orchestration/persistenceMappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,wBAAwB,wFAQ3B,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Mapping from core service calls to persistence layer (e.g. xronox-content-store).
3
+ *
4
+ * - stores.* -> StoresRepository
5
+ * - keys.* -> StoreKeysRepository + StoreKeyService
6
+ * - content.* -> RevisionedContentService
7
+ * - revisions.* -> ContentRevisionsRepository + RevisionedContentService
8
+ * - backends.* -> BackendBindingsRepository
9
+ * - sync.* -> SyncRunsRepository
10
+ * - diagnostics.* -> bootstrap/readiness helpers
11
+ *
12
+ * This package does not expose xronox engine IDs, transaction objects, or collection names.
13
+ */
14
+ export const PERSISTENCE_SERVICE_KEYS = [
15
+ 'stores',
16
+ 'keys',
17
+ 'content',
18
+ 'revisions',
19
+ 'backends',
20
+ 'sync',
21
+ 'diagnostics',
22
+ ];
23
+ //# sourceMappingURL=persistenceMappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistenceMappings.js","sourceRoot":"","sources":["../../src/orchestration/persistenceMappings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,QAAQ;IACR,MAAM;IACN,SAAS;IACT,WAAW;IACX,UAAU;IACV,MAAM;IACN,aAAa;CACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { StoreRecord } from '../types/store.js';
2
+ import type { ContentSelector } from '../types/content.js';
3
+ import type { ResolvedActor } from '../types/auth.js';
4
+ /**
5
+ * Core authorization helper. Enforces store/auth policy; throws on denial.
6
+ * Used by server and core for consistent auth semantics.
7
+ */
8
+ export interface AuthorizationService {
9
+ authorizeStoreRead(store: StoreRecord, actor: ResolvedActor): void;
10
+ authorizeStoreWrite(store: StoreRecord, actor: ResolvedActor): void;
11
+ authorizeStoreAdmin(store: StoreRecord, actor: ResolvedActor): void;
12
+ authorizeContentRead(store: StoreRecord, actor: ResolvedActor, selector: ContentSelector): void;
13
+ authorizeContentWrite(store: StoreRecord, actor: ResolvedActor, selector: ContentSelector): void;
14
+ authorizeContentDelete(store: StoreRecord, actor: ResolvedActor, selector: ContentSelector): void;
15
+ }
16
+ //# sourceMappingURL=AuthorizationService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthorizationService.d.ts","sourceRoot":"","sources":["../../src/services/AuthorizationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACnE,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACpE,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAEpE,oBAAoB,CAClB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAAC;IACR,qBAAqB,CACnB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAAC;IACR,sBAAsB,CACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,eAAe,GACxB,IAAI,CAAC;CACT"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AuthorizationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthorizationService.js","sourceRoot":"","sources":["../../src/services/AuthorizationService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { BackendBindingRecord, UpsertBackendBindingInput, RequestContext } from '../types/index.js';
2
+ export interface BackendsService {
3
+ list(storeId: string): Promise<BackendBindingRecord[]>;
4
+ get(storeId: string, backendId: string): Promise<BackendBindingRecord | null>;
5
+ upsert(storeId: string, input: UpsertBackendBindingInput, ctx?: RequestContext): Promise<BackendBindingRecord>;
6
+ }
7
+ //# sourceMappingURL=BackendsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackendsService.d.ts","sourceRoot":"","sources":["../../src/services/BackendsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EACzB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACvD,GAAG,CACD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,yBAAyB,EAChC,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=BackendsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackendsService.js","sourceRoot":"","sources":["../../src/services/BackendsService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import type { ContentSelector, ContentEntry, GetContentOptions, SetContentInput, SetContentResult, DeleteContentInput, ListContentKeysInput, ListContentEntriesInput, RequestContext } from '../types/index.js';
2
+ export interface ContentService {
3
+ get(selector: ContentSelector, options?: GetContentOptions): Promise<string | null>;
4
+ getEntry(selector: ContentSelector, options?: GetContentOptions): Promise<ContentEntry | null>;
5
+ exists(selector: ContentSelector): Promise<boolean>;
6
+ set(selector: ContentSelector, input: SetContentInput, ctx?: RequestContext): Promise<SetContentResult>;
7
+ delete(selector: ContentSelector, input?: DeleteContentInput, ctx?: RequestContext): Promise<void>;
8
+ listKeys(input?: ListContentKeysInput): Promise<string[]>;
9
+ listEntries(input?: ListContentEntriesInput): Promise<ContentEntry[]>;
10
+ }
11
+ //# sourceMappingURL=ContentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentService.d.ts","sourceRoot":"","sources":["../../src/services/ContentService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,GAAG,CACD,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,QAAQ,CACN,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChC,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,GAAG,CACD,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,eAAe,EACtB,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,MAAM,CACJ,QAAQ,EAAE,eAAe,EACzB,KAAK,CAAC,EAAE,kBAAkB,EAC1B,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1D,WAAW,CAAC,KAAK,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CACvE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ContentService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentService.js","sourceRoot":"","sources":["../../src/services/ContentService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { StoreDiagnostics } from '../types/index.js';
2
+ export interface DiagnosticsService {
3
+ ping(storeId?: string): Promise<StoreDiagnostics>;
4
+ }
5
+ //# sourceMappingURL=DiagnosticsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiagnosticsService.d.ts","sourceRoot":"","sources":["../../src/services/DiagnosticsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACnD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DiagnosticsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiagnosticsService.js","sourceRoot":"","sources":["../../src/services/DiagnosticsService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { ContentSelector, ContentRevision, ActivateRevisionInput, ActivateRevisionResult, RequestContext } from '../types/index.js';
2
+ export interface RevisionsService {
3
+ list(selector: ContentSelector): Promise<ContentRevision[]>;
4
+ get(selector: ContentSelector, revisionId: string): Promise<ContentRevision | null>;
5
+ activate(selector: ContentSelector, input: ActivateRevisionInput, ctx?: RequestContext): Promise<ActivateRevisionResult>;
6
+ }
7
+ //# sourceMappingURL=RevisionsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevisionsService.d.ts","sourceRoot":"","sources":["../../src/services/RevisionsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5D,GAAG,CACD,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACnC,QAAQ,CACN,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,qBAAqB,EAC5B,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RevisionsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RevisionsService.js","sourceRoot":"","sources":["../../src/services/RevisionsService.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { StoreKeyRecord, CreateStoreKeyInput, CreateStoreKeyResult, ResolvePresentedKeyInput, ResolvedStoreKey, RequestContext } from '../types/index.js';
2
+ export interface StoreKeysService {
3
+ create(storeId: string, input: CreateStoreKeyInput, ctx?: RequestContext): Promise<CreateStoreKeyResult>;
4
+ list(storeId: string): Promise<StoreKeyRecord[]>;
5
+ revoke(storeId: string, keyId: string, ctx?: RequestContext): Promise<void>;
6
+ resolvePresentedKey(input: ResolvePresentedKeyInput): Promise<ResolvedStoreKey | null>;
7
+ }
8
+ //# sourceMappingURL=StoreKeysService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoreKeysService.d.ts","sourceRoot":"","sources":["../../src/services/StoreKeysService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,mBAAmB,EAC1B,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACjD,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CACxF"}