@selvajs/platform 0.14.3-beta.0 → 0.15.0-beta.1

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 (145) hide show
  1. package/LICENSE +1 -1
  2. package/dist/auth.d.ts +60 -0
  3. package/dist/auth.d.ts.map +1 -0
  4. package/dist/auth.js +12 -0
  5. package/dist/auth.js.map +1 -0
  6. package/dist/compute.d.ts +47 -0
  7. package/dist/compute.d.ts.map +1 -0
  8. package/dist/compute.js +11 -0
  9. package/dist/compute.js.map +1 -0
  10. package/dist/data/interface.d.ts +33 -0
  11. package/dist/data/interface.d.ts.map +1 -1
  12. package/dist/definitions/interface.d.ts +10 -0
  13. package/dist/definitions/interface.d.ts.map +1 -1
  14. package/dist/definitions/schemas.d.ts +1 -0
  15. package/dist/definitions/schemas.d.ts.map +1 -1
  16. package/dist/definitions/schemas.js +3 -0
  17. package/dist/definitions/schemas.js.map +1 -1
  18. package/dist/definitions/service.d.ts +62 -0
  19. package/dist/definitions/service.d.ts.map +1 -0
  20. package/dist/definitions/service.js +149 -0
  21. package/dist/definitions/service.js.map +1 -0
  22. package/dist/definitions/types.d.ts +24 -1
  23. package/dist/definitions/types.d.ts.map +1 -1
  24. package/dist/definitions.d.ts +146 -0
  25. package/dist/definitions.d.ts.map +1 -0
  26. package/dist/definitions.js +23 -0
  27. package/dist/definitions.js.map +1 -0
  28. package/dist/events/interface.d.ts +23 -0
  29. package/dist/events/interface.d.ts.map +1 -1
  30. package/dist/events/interface.js.map +1 -1
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/invites/schemas.d.ts +24 -0
  36. package/dist/invites/schemas.d.ts.map +1 -0
  37. package/dist/invites/schemas.js +17 -0
  38. package/dist/invites/schemas.js.map +1 -0
  39. package/dist/metrics/interface.d.ts +6 -0
  40. package/dist/metrics/interface.d.ts.map +1 -1
  41. package/dist/metrics/interface.js.map +1 -1
  42. package/dist/organizations.d.ts +93 -0
  43. package/dist/organizations.d.ts.map +1 -0
  44. package/dist/organizations.js +14 -0
  45. package/dist/organizations.js.map +1 -0
  46. package/dist/solveCache/interface.d.ts +86 -0
  47. package/dist/solveCache/interface.d.ts.map +1 -0
  48. package/dist/solveCache/interface.js +12 -0
  49. package/dist/solveCache/interface.js.map +1 -0
  50. package/dist/testing/adapterSuite.d.ts +33 -0
  51. package/dist/testing/adapterSuite.d.ts.map +1 -0
  52. package/dist/testing/adapterSuite.js +166 -0
  53. package/dist/testing/adapterSuite.js.map +1 -0
  54. package/dist/testing/suites/definitionStoreSuite.d.ts.map +1 -1
  55. package/dist/testing/suites/definitionStoreSuite.js +57 -0
  56. package/dist/testing/suites/definitionStoreSuite.js.map +1 -1
  57. package/dist/testing/suites/eventSinkSuite.js +1 -0
  58. package/dist/testing/suites/eventSinkSuite.js.map +1 -1
  59. package/dist/testing/suites/platformPermissionStoreSuite.d.ts +9 -0
  60. package/dist/testing/suites/platformPermissionStoreSuite.d.ts.map +1 -1
  61. package/dist/testing/suites/platformPermissionStoreSuite.js +34 -1
  62. package/dist/testing/suites/platformPermissionStoreSuite.js.map +1 -1
  63. package/dist/testing/suites/runner.d.ts +21 -0
  64. package/dist/testing/suites/runner.d.ts.map +1 -0
  65. package/dist/testing/suites/runner.js +7 -0
  66. package/dist/testing/suites/runner.js.map +1 -0
  67. package/package.json +9 -24
  68. package/src/access/index.ts +0 -23
  69. package/src/access/rules.ts +0 -276
  70. package/src/auth/index.ts +0 -8
  71. package/src/auth/interface.ts +0 -279
  72. package/src/auth/types.ts +0 -32
  73. package/src/bindings/index.ts +0 -2
  74. package/src/bindings/interface.ts +0 -61
  75. package/src/computeServer/index.ts +0 -28
  76. package/src/computeServer/interface.ts +0 -73
  77. package/src/computeServer/secrets.ts +0 -102
  78. package/src/computeServer/types.ts +0 -74
  79. package/src/computeServer/utils.ts +0 -112
  80. package/src/config.ts +0 -99
  81. package/src/context.ts +0 -80
  82. package/src/data/index.ts +0 -1
  83. package/src/data/interface.ts +0 -70
  84. package/src/definitions/index.ts +0 -26
  85. package/src/definitions/interface.ts +0 -87
  86. package/src/definitions/paths.ts +0 -31
  87. package/src/definitions/schemas.ts +0 -64
  88. package/src/definitions/types.ts +0 -111
  89. package/src/errors/interface.ts +0 -45
  90. package/src/errors.ts +0 -16
  91. package/src/events/audit.ts +0 -67
  92. package/src/events/index.ts +0 -9
  93. package/src/events/interface.ts +0 -102
  94. package/src/index.ts +0 -247
  95. package/src/invites/index.ts +0 -2
  96. package/src/invites/interface.ts +0 -38
  97. package/src/invites/types.ts +0 -39
  98. package/src/metrics/interface.ts +0 -86
  99. package/src/organizations/index.ts +0 -23
  100. package/src/organizations/interface.ts +0 -68
  101. package/src/organizations/paths.ts +0 -45
  102. package/src/organizations/schemas.ts +0 -61
  103. package/src/organizations/types.ts +0 -41
  104. package/src/pagination.ts +0 -45
  105. package/src/permissions/index.ts +0 -3
  106. package/src/permissions/interface.ts +0 -60
  107. package/src/permissions/types.ts +0 -21
  108. package/src/platformProjects/index.ts +0 -3
  109. package/src/platformProjects/interface.ts +0 -27
  110. package/src/platformProjects/schemas.ts +0 -13
  111. package/src/platformProjects/types.ts +0 -22
  112. package/src/projects/index.ts +0 -4
  113. package/src/projects/interface.ts +0 -58
  114. package/src/projects/schemas.ts +0 -28
  115. package/src/projects/types.ts +0 -36
  116. package/src/shareLinks/index.ts +0 -5
  117. package/src/shareLinks/interface.ts +0 -35
  118. package/src/shareLinks/schemas.ts +0 -21
  119. package/src/shareLinks/types.ts +0 -34
  120. package/src/storage/assetClasses.ts +0 -134
  121. package/src/storage/cacheBust.ts +0 -26
  122. package/src/storage/image.ts +0 -82
  123. package/src/storage/index.ts +0 -12
  124. package/src/storage/interface.ts +0 -27
  125. package/src/testing/index.ts +0 -47
  126. package/src/testing/suites/authProviderSuite.ts +0 -207
  127. package/src/testing/suites/computeServerStoreSuite.ts +0 -195
  128. package/src/testing/suites/definitionStoreSuite.ts +0 -630
  129. package/src/testing/suites/emailLinkAuthSuite.ts +0 -83
  130. package/src/testing/suites/eventSinkSuite.ts +0 -379
  131. package/src/testing/suites/helpers.ts +0 -87
  132. package/src/testing/suites/inviteStoreSuite.ts +0 -143
  133. package/src/testing/suites/orgStoreSuite.ts +0 -429
  134. package/src/testing/suites/platformPermissionStoreSuite.ts +0 -196
  135. package/src/testing/suites/platformProjectGrantStoreSuite.ts +0 -166
  136. package/src/testing/suites/projectStoreSuite.ts +0 -381
  137. package/src/testing/suites/shareLinkStoreSuite.ts +0 -203
  138. package/src/testing/suites/solveMetricSinkSuite.ts +0 -135
  139. package/src/testing/suites/storageProviderSuite.ts +0 -196
  140. package/src/testing/suites/userProfileStoreSuite.ts +0 -134
  141. package/src/userProfile/index.ts +0 -3
  142. package/src/userProfile/interface.ts +0 -48
  143. package/src/userProfile/types.ts +0 -24
  144. package/src/utils/audit.ts +0 -46
  145. package/src/utils/index.ts +0 -2
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Definition provider interfaces — independently swappable.
3
+ *
4
+ * File storage and metadata storage are deliberately split so you can mix:
5
+ * - Filesystem files + Supabase DB metadata
6
+ * - S3 files + local JSON metadata
7
+ * - Everything through one backend (e.g. full Supabase)
8
+ */
9
+ export type DefinitionFileExt = 'gh' | 'ghx';
10
+ /** File extensions accepted for Grasshopper definitions (with dot) */
11
+ export declare const GH_EXTENSIONS: string[];
12
+ /** Image extensions accepted for cover images (with dot) */
13
+ export declare const COVER_IMAGE_EXTENSIONS: string[];
14
+ /** All accepted upload extensions */
15
+ export declare const ALLOWED_UPLOAD_EXTENSIONS: string[];
16
+ /** MIME types for image extensions */
17
+ export declare const COVER_IMAGE_CONTENT_TYPES: Record<string, string>;
18
+ export interface DefinitionMeta {
19
+ displayName: string;
20
+ description?: string;
21
+ category?: string;
22
+ tags?: string[];
23
+ /** Public URL to cover image, provider-dependent (e.g. /api/definitions/{guid}/image/cover.webp or a CDN URL) */
24
+ coverImage?: string;
25
+ /** Original uploaded filename, kept for display only */
26
+ originalFilename?: string;
27
+ }
28
+ /**
29
+ * A single entry in the file version history.
30
+ * Stored by the meta provider; the actual bytes are stored by the file provider.
31
+ */
32
+ export interface HistoryEntry {
33
+ /**
34
+ * Provider-specific reference to the archived file.
35
+ * Filesystem: timestamped filename (e.g. "2024-01-15T10-30-45-123Z_definition.gh").
36
+ * S3 / Supabase: object key or storage path.
37
+ */
38
+ ref: string;
39
+ /** Original uploaded filename, for display purposes */
40
+ originalName: string;
41
+ /** ISO 8601 date of when the file was archived */
42
+ archivedAt: string;
43
+ }
44
+ export interface DefinitionRecord {
45
+ /** UUID v4 primary key */
46
+ guid: string;
47
+ /** UUID of the project that owns this definition */
48
+ projectId: string;
49
+ /** UUID of the user who created this definition */
50
+ ownerId: string;
51
+ /**
52
+ * Optional UUID of a specific compute server to use when solving.
53
+ * Falls back to the org default, then the platform default.
54
+ */
55
+ computeServerId?: string;
56
+ fileExt: DefinitionFileExt;
57
+ meta: DefinitionMeta;
58
+ /** File version history, newest first */
59
+ history: HistoryEntry[];
60
+ /** Maximum archived versions to keep. 0 = unlimited. */
61
+ maxHistory: number;
62
+ createdAt: string;
63
+ updatedAt: string;
64
+ }
65
+ /**
66
+ * File storage provider: where .gh / .ghx binaries, archived versions, and preview images live.
67
+ *
68
+ * Implement with: local filesystem, S3, Supabase Storage, Azure Blob, etc.
69
+ */
70
+ export interface IDefinitionFileProvider {
71
+ /** Load the active Grasshopper definition binary. Returns null if not found. */
72
+ getFile(guid: string): Promise<Uint8Array | null>;
73
+ /** Load the preview image bytes. Returns null if no image exists. */
74
+ getPreviewImage(guid: string): Promise<Uint8Array | null>;
75
+ /**
76
+ * Load an archived file by its provider-specific ref.
77
+ * Used when reverting to a previous version.
78
+ */
79
+ getArchivedFile(guid: string, ref: string): Promise<Uint8Array | null>;
80
+ /** Store the active definition file. Overwrites any existing active file. */
81
+ saveFile(guid: string, data: Uint8Array, ext: DefinitionFileExt): Promise<void>;
82
+ /**
83
+ * Archive the current active file before replacing it.
84
+ * Returns a HistoryEntry (with provider-specific ref) to be saved by the meta provider.
85
+ * Returns null if there is no current active file to archive.
86
+ */
87
+ archiveCurrentFile(guid: string, originalName: string): Promise<HistoryEntry | null>;
88
+ /**
89
+ * Delete a specific archived version by its ref.
90
+ * Called when pruning history that exceeds maxHistory.
91
+ */
92
+ deleteArchivedFile(guid: string, ref: string): Promise<void>;
93
+ /** Store a preview image. The provider may transcode to its preferred format. */
94
+ saveImage(guid: string, data: Uint8Array): Promise<void>;
95
+ /**
96
+ * Returns the public URL for the stored cover image after a saveImage() call.
97
+ * Called immediately after saveImage() so the URL can be persisted in metadata.
98
+ * Filesystem: returns "/api/definitions/{guid}/image/cover.webp".
99
+ * S3/Supabase: returns the CDN or signed URL for the uploaded image.
100
+ */
101
+ getCoverImageUrl(guid: string): string;
102
+ /** Delete all files associated with a GUID (active file, archives, image). */
103
+ deleteFiles(guid: string): Promise<void>;
104
+ }
105
+ /**
106
+ * Top-level fields that can be patched on an existing record.
107
+ * `meta` is merged shallowly; top-level fields replace the stored value.
108
+ */
109
+ export interface DefinitionRecordPatch {
110
+ meta?: Partial<DefinitionMeta>;
111
+ fileExt?: DefinitionFileExt;
112
+ maxHistory?: number;
113
+ projectId?: string;
114
+ computeServerId?: string | null;
115
+ }
116
+ /**
117
+ * Metadata storage provider: where definition config, metadata, and file history live.
118
+ *
119
+ * Implement with: local JSON file, Supabase DB, DynamoDB, PostgreSQL, etc.
120
+ */
121
+ export interface IDefinitionMetaProvider {
122
+ /** List all definition records, sorted by displayName. */
123
+ list(): Promise<DefinitionRecord[]>;
124
+ /** List all definitions belonging to a specific project. */
125
+ listByProject(projectId: string): Promise<DefinitionRecord[]>;
126
+ /** List definitions that belong to projects with public visibility. */
127
+ listPublic(): Promise<DefinitionRecord[]>;
128
+ /** Get a single record by GUID. Returns null if not found. */
129
+ get(guid: string): Promise<DefinitionRecord | null>;
130
+ /** Create a new definition record. */
131
+ create(record: DefinitionRecord): Promise<void>;
132
+ /** Merge a patch into an existing record. `meta` fields are merged shallowly. */
133
+ update(guid: string, patch: DefinitionRecordPatch): Promise<void>;
134
+ /**
135
+ * Prepend a new history entry and optionally prune old entries.
136
+ * The file provider has already archived the bytes; this just updates the metadata.
137
+ */
138
+ addHistoryEntry(guid: string, entry: HistoryEntry): Promise<void>;
139
+ /**
140
+ * Remove a history entry by ref (after the file provider has deleted the bytes).
141
+ */
142
+ removeHistoryEntry(guid: string, ref: string): Promise<void>;
143
+ /** Delete a definition record entirely. */
144
+ delete(guid: string): Promise<void>;
145
+ }
146
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Definition provider interfaces — independently swappable.
3
+ *
4
+ * File storage and metadata storage are deliberately split so you can mix:
5
+ * - Filesystem files + Supabase DB metadata
6
+ * - S3 files + local JSON metadata
7
+ * - Everything through one backend (e.g. full Supabase)
8
+ */
9
+ /** File extensions accepted for Grasshopper definitions (with dot) */
10
+ export const GH_EXTENSIONS = ['.gh', '.ghx'];
11
+ /** Image extensions accepted for cover images (with dot) */
12
+ export const COVER_IMAGE_EXTENSIONS = ['.jpg', '.jpeg', '.png', '.webp', '.gif'];
13
+ /** All accepted upload extensions */
14
+ export const ALLOWED_UPLOAD_EXTENSIONS = [...GH_EXTENSIONS, ...COVER_IMAGE_EXTENSIONS];
15
+ /** MIME types for image extensions */
16
+ export const COVER_IMAGE_CONTENT_TYPES = {
17
+ '.jpg': 'image/jpeg',
18
+ '.jpeg': 'image/jpeg',
19
+ '.png': 'image/png',
20
+ '.webp': 'image/webp',
21
+ '.gif': 'image/gif'
22
+ };
23
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,sEAAsE;AACtE,MAAM,CAAC,MAAM,aAAa,GAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAEvD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3F,qCAAqC;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAa,CAAC,GAAG,aAAa,EAAE,GAAG,sBAAsB,CAAC,CAAC;AAEjG,sCAAsC;AACtC,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAChE,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACnB,CAAC"}
@@ -110,6 +110,29 @@ export type DomainEvent = {
110
110
  inviteId: string;
111
111
  orgId: string;
112
112
  actorId: string;
113
+ } | {
114
+ type: 'system.update.started';
115
+ channel: string;
116
+ fromVersion?: string;
117
+ actorId: string;
118
+ } | {
119
+ type: 'system.update.finished';
120
+ fromVersion?: string;
121
+ toVersion?: string;
122
+ detail?: string;
123
+ actorId: string;
124
+ } | {
125
+ type: 'system.update.rolled_back';
126
+ fromVersion?: string;
127
+ toVersion?: string;
128
+ detail?: string;
129
+ actorId: string;
130
+ } | {
131
+ type: 'system.update.failed';
132
+ fromVersion?: string;
133
+ toVersion?: string;
134
+ detail?: string;
135
+ actorId: string;
113
136
  };
114
137
  export type DomainEventType = DomainEvent['type'];
115
138
  export interface IEventSink {
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/events/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/events/interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/events/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4EH;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAyC;IAClE,OAAO,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACzB,KAAK,CAAC,IAAI,CAAC,MAAmB,IAAkB,CAAC;CACjD"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/events/interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqGH;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,GAAyC;IAClE,OAAO,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACzB,KAAK,CAAC,IAAI,CAAC,MAAmB,IAAkB,CAAC;CACjD"}
package/dist/index.d.ts CHANGED
@@ -38,7 +38,7 @@ export type { TranscodeResult } from './storage/image.js';
38
38
  export { ASSET_CLASSES, classifyAssetPath, isPublicAssetPath } from './storage/assetClasses.js';
39
39
  export type { AssetVisibility, AssetScope, AssetClass, AssetMatch } from './storage/assetClasses.js';
40
40
  export { withCacheBust } from './storage/cacheBust.js';
41
- export type { IDataProvider } from './data/interface.js';
41
+ export type { IDataProvider, SchemaVersionReport } from './data/interface.js';
42
42
  export type { ComputeServerConfig, ComputeConfig, PlatformComputeServer, OrgComputeServer } from './computeServer/types.js';
43
43
  export { isPlatformServer, isOrgServer } from './computeServer/types.js';
44
44
  export type { IComputeServerStore } from './computeServer/interface.js';
@@ -52,6 +52,8 @@ export { actorFrom, NoopEventSink } from './events/interface.js';
52
52
  export type { AuditEventRow, AuditCursor, AuditQueryFilters, AuditQueryResult, IAuditQuery } from './events/audit.js';
53
53
  export type { ISolveMetricSink, SolveMetric, SolveFailureKind } from './metrics/interface.js';
54
54
  export { NoopSolveMetricSink } from './metrics/interface.js';
55
+ export type { ISolveResultCache, SolveCacheKey, SolveCacheSetOptions } from './solveCache/interface.js';
56
+ export { NoopSolveResultCache } from './solveCache/interface.js';
55
57
  export type { IErrorReporter, ErrorContext } from './errors/interface.js';
56
58
  export { NoopErrorReporter } from './errors/interface.js';
57
59
  export type { IBindingResolver } from './bindings/interface.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnF,YAAY,EACX,aAAa,EACb,UAAU,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,MAAM,qBAAqB,CAAC;AAK7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,YAAY,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAG3E,YAAY,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnF,YAAY,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,YAAY,EACX,OAAO,EACP,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,YAAY,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,EACN,0BAA0B,EAC1B,gCAAgC,EAChC,MAAM,+BAA+B,CAAC;AAGvC,YAAY,EACX,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,MAAM,0BAA0B,CAAC;AAKlC,YAAY,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAKrE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,YAAY,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKvD,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK9E,YAAY,EACX,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAMxE,YAAY,EACX,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,MAAM,0BAA0B,CAAC;AAKlC,YAAY,EACX,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,MAAM,mBAAmB,CAAC;AAK3B,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,MAAM,mBAAmB,CAAC;AAK3B,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,YAAY,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAKjE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAK9D,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKhE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/E,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAErE,YAAY,EACX,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ export { serversVisibleTo, defaultServerIdFor, resolveServerForOrg, findServerBy
18
18
  export { canView, canSolve, canEdit, canManage, canEditProjectSettings, canChangeVisibilityToPublic, canEditDefinition, canReclaim, canCreateProject, checkOwnerRemoval, withAdminBypass } from './access/rules.js';
19
19
  export { actorFrom, NoopEventSink } from './events/interface.js';
20
20
  export { NoopSolveMetricSink } from './metrics/interface.js';
21
+ export { NoopSolveResultCache } from './solveCache/interface.js';
21
22
  export { NoopErrorReporter } from './errors/interface.js';
22
23
  export { NoopBindingResolver } from './bindings/interface.js';
23
24
  export { auditUpdate, auditSoftDelete } from './utils/audit.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAgB9F,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAM5F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQpD,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACN,0BAA0B,EAC1B,gCAAgC,EAChC,MAAM,+BAA+B,CAAC;AAavC,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAMrE,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOhG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAgBvD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAazE,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,MAAM,0BAA0B,CAAC;AAclC,OAAO,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAajE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAM7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMhE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AASrE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAgB9F,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAM5F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAKtD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAQpD,OAAO,EACN,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,6BAA6B,EAC7B,MAAM,4BAA4B,CAAC;AAUpC,OAAO,EACN,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACN,0BAA0B,EAC1B,gCAAgC,EAChC,MAAM,+BAA+B,CAAC;AAavC,OAAO,EACN,aAAa,EACb,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EACN,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,EACzB,UAAU,EACV,UAAU,EACV,MAAM,0BAA0B,CAAC;AAOlC,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAMrE,OAAO,EACN,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,sBAAsB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAOhG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAgBvD,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAazE,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,aAAa,EACb,MAAM,0BAA0B,CAAC;AAclC,OAAO,EACN,OAAO,EACP,QAAQ,EACR,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAajE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAU7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAMjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAMhE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG/E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AASrE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ export declare const CreateInviteInputSchema: z.ZodObject<{
3
+ email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
+ orgId: z.ZodString;
5
+ orgRole: z.ZodEnum<{
6
+ owner: "owner";
7
+ admin: "admin";
8
+ member: "member";
9
+ }>;
10
+ orgPermissions: z.ZodDefault<z.ZodArray<z.ZodEnum<{
11
+ manage_org_members: "manage_org_members";
12
+ manage_org_compute: "manage_org_compute";
13
+ manage_definitions: "manage_definitions";
14
+ manage_projects: "manage_projects";
15
+ }>>>;
16
+ }, z.core.$strip>;
17
+ export declare const AcceptInviteInputSchema: z.ZodObject<{
18
+ token: z.ZodString;
19
+ password: z.ZodString;
20
+ displayName: z.ZodOptional<z.ZodString>;
21
+ }, z.core.$strip>;
22
+ export type CreateInviteInput = z.infer<typeof CreateInviteInputSchema>;
23
+ export type AcceptInviteInput = z.infer<typeof AcceptInviteInputSchema>;
24
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/invites/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;iBAQlC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { z } from 'zod';
2
+ import { OrgRoleSchema, OrgPermissionSchema } from '../organizations/schemas.js';
3
+ export const CreateInviteInputSchema = z.object({
4
+ email: z
5
+ .string()
6
+ .email('Valid email is required')
7
+ .transform((s) => s.toLowerCase()),
8
+ orgId: z.string().uuid(),
9
+ orgRole: OrgRoleSchema,
10
+ orgPermissions: z.array(OrgPermissionSchema).default([])
11
+ });
12
+ export const AcceptInviteInputSchema = z.object({
13
+ token: z.string().min(20),
14
+ password: z.string().min(8, 'Password must be at least 8 characters'),
15
+ displayName: z.string().trim().max(128).optional()
16
+ });
17
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/invites/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAEjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,KAAK,CAAC,yBAAyB,CAAC;SAChC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACxB,OAAO,EAAE,aAAa;IACtB,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACzB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;IACrE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC"}
@@ -18,6 +18,12 @@ export type SolveFailureKind =
18
18
  | 'share_cap'
19
19
  /** Result exceeded the response size limit (HTTP 413). */
20
20
  | 'too_large'
21
+ /**
22
+ * Shed by scheduler backpressure — the per-server queue was full, or the solve
23
+ * sat queued past its wait deadline, so it was rejected before executing
24
+ * (HTTP 503 + Retry-After). Distinct from `compute_error`: no compute ran.
25
+ */
26
+ | 'shed'
21
27
  /** Compute server unreachable or the solve threw for any other reason. */
22
28
  | 'compute_error';
23
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/metrics/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC3B,gEAAgE;AAC9D,IAAI;AACN,8CAA8C;GAC5C,SAAS;AACX,4EAA4E;GAC1E,cAAc;AAChB,sEAAsE;GACpE,cAAc;AAChB,8DAA8D;GAC5D,WAAW;AACb,0DAA0D;GACxD,WAAW;AACb,0EAA0E;GACxE,eAAe,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qDAAqD;IACrD,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,EAAE,EAAE,OAAO,CAAC;IACZ,iEAAiE;IACjE,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACrD,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CACvE"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/metrics/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC3B,gEAAgE;AAC9D,IAAI;AACN,8CAA8C;GAC5C,SAAS;AACX,4EAA4E;GAC1E,cAAc;AAChB,sEAAsE;GACpE,cAAc;AAChB,8DAA8D;GAC5D,WAAW;AACb,0DAA0D;GACxD,WAAW;AACb;;;;GAIG;GACD,MAAM;AACR,0EAA0E;GACxE,eAAe,CAAC;AAEnB;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qDAAqD;IACrD,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,EAAE,EAAE,OAAO,CAAC;IACZ,iEAAiE;IACjE,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,gBAAgB;IACrD,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CACvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/metrics/interface.ts"],"names":[],"mappings":"AA8EA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAoB,EAAE,OAAoB,IAAkB,CAAC;CAC1E"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/metrics/interface.ts"],"names":[],"mappings":"AAoFA;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAoB,EAAE,OAAoB,IAAkB,CAAC;CAC1E"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Organization and Project provider interfaces.
3
+ *
4
+ * Models a three-level ownership hierarchy:
5
+ * Platform → Organization → Project → Definition
6
+ *
7
+ * Implement for any backend:
8
+ * - Local JSON files (built-in default)
9
+ * - Supabase (row-level security tables)
10
+ * - Firebase Firestore
11
+ * - Any relational database
12
+ */
13
+ export interface Organization {
14
+ /** UUID v4 primary key */
15
+ id: string;
16
+ /** Human-readable display name */
17
+ name: string;
18
+ /** URL-safe unique identifier, e.g. "acme-corp" */
19
+ slug: string;
20
+ /** UUID of the user who owns this org */
21
+ ownerId: string;
22
+ createdAt: string;
23
+ updatedAt: string;
24
+ }
25
+ export type OrgRole = 'owner' | 'admin' | 'member';
26
+ export interface OrgMember {
27
+ orgId: string;
28
+ userId: string;
29
+ role: OrgRole;
30
+ joinedAt: string;
31
+ }
32
+ /**
33
+ * Who can invoke solve on definitions in this project:
34
+ * - 'public' — any authenticated user
35
+ * - 'org' — any member of the parent organization
36
+ * - 'private' — only users listed in ProjectMember
37
+ */
38
+ export type ProjectVisibility = 'public' | 'org' | 'private';
39
+ export type ProjectRole = 'owner' | 'editor' | 'viewer';
40
+ export interface Project {
41
+ /** UUID v4 primary key */
42
+ id: string;
43
+ /** UUID of the owning organization */
44
+ orgId: string;
45
+ name: string;
46
+ /** URL-safe, unique within the organization */
47
+ slug: string;
48
+ description?: string;
49
+ visibility: ProjectVisibility;
50
+ /** UUID of the user who created this project */
51
+ ownerId: string;
52
+ createdAt: string;
53
+ updatedAt: string;
54
+ }
55
+ export interface ProjectMember {
56
+ projectId: string;
57
+ userId: string;
58
+ role: ProjectRole;
59
+ joinedAt: string;
60
+ }
61
+ export interface IOrganizationProvider {
62
+ listOrgs(): Promise<Organization[]>;
63
+ getOrg(id: string): Promise<Organization | null>;
64
+ getOrgBySlug(slug: string): Promise<Organization | null>;
65
+ createOrg(org: Organization): Promise<void>;
66
+ /** Patch mutable org fields. Only name and slug may be changed after creation. */
67
+ updateOrg(id: string, patch: Partial<Pick<Organization, 'name' | 'slug'>>): Promise<void>;
68
+ /** Delete an org and all its projects (cascade is implementation-specific). */
69
+ deleteOrg(id: string): Promise<void>;
70
+ listOrgMembers(orgId: string): Promise<OrgMember[]>;
71
+ getOrgMember(orgId: string, userId: string): Promise<OrgMember | null>;
72
+ addOrgMember(member: OrgMember): Promise<void>;
73
+ updateOrgMemberRole(orgId: string, userId: string, role: OrgRole): Promise<void>;
74
+ removeOrgMember(orgId: string, userId: string): Promise<void>;
75
+ listProjects(orgId: string): Promise<Project[]>;
76
+ getProject(id: string): Promise<Project | null>;
77
+ getProjectBySlug(orgId: string, slug: string): Promise<Project | null>;
78
+ createProject(project: Project): Promise<void>;
79
+ updateProject(id: string, patch: Partial<Pick<Project, 'name' | 'slug' | 'description' | 'visibility'>>): Promise<void>;
80
+ deleteProject(id: string): Promise<void>;
81
+ listProjectMembers(projectId: string): Promise<ProjectMember[]>;
82
+ getProjectMember(projectId: string, userId: string): Promise<ProjectMember | null>;
83
+ addProjectMember(member: ProjectMember): Promise<void>;
84
+ updateProjectMemberRole(projectId: string, userId: string, role: ProjectRole): Promise<void>;
85
+ removeProjectMember(projectId: string, userId: string): Promise<void>;
86
+ /** Returns true if the user may invoke solve on any definition in the project. */
87
+ canSolve(userId: string, projectId: string): Promise<boolean>;
88
+ /** Returns true if the user may upload or modify definitions in the project. */
89
+ canEdit(userId: string, projectId: string): Promise<boolean>;
90
+ /** Returns true if the user may manage project members and settings. */
91
+ canManage(userId: string, projectId: string): Promise<boolean>;
92
+ }
93
+ //# sourceMappingURL=organizations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organizations.d.ts","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,YAAY;IAC5B,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,SAAS;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACjB;AAID;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,OAAO;IACvB,0BAA0B;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,qBAAqB;IAGrC,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACjD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACzD,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,kFAAkF;IAClF,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,+EAA+E;IAC/E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIrC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvE,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAI9D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAChD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvE,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,aAAa,CACZ,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAIzC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAChE,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACnF,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7F,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAMtE,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9D,gFAAgF;IAChF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D,wEAAwE;IACxE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Organization and Project provider interfaces.
3
+ *
4
+ * Models a three-level ownership hierarchy:
5
+ * Platform → Organization → Project → Definition
6
+ *
7
+ * Implement for any backend:
8
+ * - Local JSON files (built-in default)
9
+ * - Supabase (row-level security tables)
10
+ * - Firebase Firestore
11
+ * - Any relational database
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=organizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organizations.js","sourceRoot":"","sources":["../src/organizations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,86 @@
1
+ import type { RequestContext } from '../context.js';
2
+ /**
3
+ * Durable L2 solve-result cache (H1). The scheduler's in-process `Map` is L1 —
4
+ * 20 entries, 5-min TTL, per app instance. This is the shared, longer-lived
5
+ * layer keyed on `(orgId, definitionId, versionId, inputKey)` where `inputKey`
6
+ * is a wide (SHA-256) hash of the transformed input tree plus the solve-affecting
7
+ * config subset (H2/R8). A hit skips compute entirely.
8
+ *
9
+ * Design contract (decided 2026-07-11):
10
+ *
11
+ * - **Async from day one.** The memory backend returns promises too, so no call
12
+ * site changes shape when a network store (Redis) arrives later.
13
+ * - **Entries are opaque bytes** — the pre-gzipped response envelope (R6) plus a
14
+ * small metadata header. The backend never inspects them; memory stores the
15
+ * same buffer Redis would, so a hit stays near-CPU-free in either backend and
16
+ * there is no serialization drift between impls.
17
+ * - **Best-effort.** `get` may miss at any time (restart, eviction, network
18
+ * blip); `set` may silently drop. Correctness NEVER depends on cache presence —
19
+ * this is what makes backends interchangeable and what makes the
20
+ * no-TTL/versionId keying safe under any eviction policy.
21
+ * - **Per-definition quota, passed at write time.** `set` carries
22
+ * `maxEntriesForDefinition` so the backend holds no policy, only data. Eviction
23
+ * is LRU *within* the definition: a slider-heavy definition churns only its own
24
+ * entries, not everyone else's.
25
+ * - **Version keying = no invalidation.** Publishing mints a new `versionId` →
26
+ * fresh keyspace; rollback re-hits old entries; there is nothing to invalidate.
27
+ */
28
+ /** The parts that address a cached solve. All four are folded into the stored key. */
29
+ export interface SolveCacheKey {
30
+ /**
31
+ * Owning org (defense-in-depth against cross-tenant reads). Null for
32
+ * remote-URL solves that have no org — those are not cached (the app passes
33
+ * the cache hook only for org-scoped live-channel solves).
34
+ */
35
+ orgId: string;
36
+ /** The definition guid — the quota scope. */
37
+ definitionId: string;
38
+ /** The immutable version id — no TTL needed, so entries never go stale. */
39
+ versionId: string;
40
+ /**
41
+ * Wide hash of the transformed input tree + solve-affecting config subset
42
+ * (SHA-256 hex; see the pipeline's key builder). This is the only part that
43
+ * varies per solve of a given version.
44
+ */
45
+ inputKey: string;
46
+ }
47
+ /** Options for a write; carries the per-definition quota so the backend stays stateless. */
48
+ export interface SolveCacheSetOptions {
49
+ /**
50
+ * Max cached entries this definition may retain. The backend evicts
51
+ * LRU-within-definition down to this count on write. A definition's quota is
52
+ * `solveCacheLimit` (absent → the global default); the app never calls `set`
53
+ * when the resolved quota is `0` (caching off), so this is always `>= 1`.
54
+ */
55
+ maxEntriesForDefinition: number;
56
+ }
57
+ /**
58
+ * Durable solve-result cache. The solve pipeline talks only to this interface;
59
+ * the backend (memory today, Redis later) is a config change, not a redesign.
60
+ *
61
+ * Implementations MUST NOT throw — both methods are best-effort on the hot path
62
+ * of every live solve. A backend failure resolves as a miss (`get`) or a silent
63
+ * drop (`set`); it never becomes a request error.
64
+ */
65
+ export interface ISolveResultCache {
66
+ /**
67
+ * Look up a cached envelope. Resolves the opaque bytes on a hit, or `null` on
68
+ * a miss (including any backend error). Bumps the entry's recency.
69
+ */
70
+ get(ctx: RequestContext, key: SolveCacheKey): Promise<Uint8Array | null>;
71
+ /**
72
+ * Store an envelope, evicting LRU-within-definition down to
73
+ * `opts.maxEntriesForDefinition`. Best-effort: silently drops on any failure.
74
+ */
75
+ set(ctx: RequestContext, key: SolveCacheKey, bytes: Uint8Array, opts: SolveCacheSetOptions): Promise<void>;
76
+ }
77
+ /**
78
+ * Default `ISolveResultCache` — never stores, always misses. Used when
79
+ * `SOLVE_CACHE_PROVIDER=off` (or unset). Swap in the memory backend
80
+ * (`@selvajs/server`) or a shared store to enable the durable L2.
81
+ */
82
+ export declare class NoopSolveResultCache implements ISolveResultCache {
83
+ get(_ctx: RequestContext, _key: SolveCacheKey): Promise<Uint8Array | null>;
84
+ set(_ctx: RequestContext, _key: SolveCacheKey, _bytes: Uint8Array, _opts: SolveCacheSetOptions): Promise<void>;
85
+ }
86
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/solveCache/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC7B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,4FAA4F;AAC5F,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,uBAAuB,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IACjC;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACzE;;;OAGG;IACH,GAAG,CACF,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,oBAAoB,GACxB,OAAO,CAAC,IAAI,CAAC,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,iBAAiB;IACvD,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAG1E,GAAG,CACR,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,oBAAoB,GACzB,OAAO,CAAC,IAAI,CAAC;CAChB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Default `ISolveResultCache` — never stores, always misses. Used when
3
+ * `SOLVE_CACHE_PROVIDER=off` (or unset). Swap in the memory backend
4
+ * (`@selvajs/server`) or a shared store to enable the durable L2.
5
+ */
6
+ export class NoopSolveResultCache {
7
+ async get(_ctx, _key) {
8
+ return null;
9
+ }
10
+ async set(_ctx, _key, _bytes, _opts) { }
11
+ }
12
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../src/solveCache/interface.ts"],"names":[],"mappings":"AAsFA;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAChC,KAAK,CAAC,GAAG,CAAC,IAAoB,EAAE,IAAmB;QAClD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,KAAK,CAAC,GAAG,CACR,IAAoB,EACpB,IAAmB,EACnB,MAAkB,EAClB,KAA2B,IACV,CAAC;CACnB"}