@ue-shed/map-history 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 (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +47 -0
  3. package/dist/baseline-materialization.d.ts +17 -0
  4. package/dist/baseline-materialization.d.ts.map +1 -0
  5. package/dist/baseline-materialization.js +86 -0
  6. package/dist/baseline-materialization.js.map +1 -0
  7. package/dist/diff.d.ts +7 -0
  8. package/dist/diff.d.ts.map +1 -0
  9. package/dist/diff.js +159 -0
  10. package/dist/diff.js.map +1 -0
  11. package/dist/errors.d.ts +14 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +27 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/fast-history-target.d.ts +61 -0
  16. package/dist/fast-history-target.d.ts.map +1 -0
  17. package/dist/fast-history-target.js +248 -0
  18. package/dist/fast-history-target.js.map +1 -0
  19. package/dist/historical-project-tree.d.ts +18 -0
  20. package/dist/historical-project-tree.d.ts.map +1 -0
  21. package/dist/historical-project-tree.js +123 -0
  22. package/dist/historical-project-tree.js.map +1 -0
  23. package/dist/index.d.ts +14 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +14 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/map-history.d.ts +24 -0
  28. package/dist/map-history.d.ts.map +1 -0
  29. package/dist/map-history.js +365 -0
  30. package/dist/map-history.js.map +1 -0
  31. package/dist/package-correlation.d.ts +16 -0
  32. package/dist/package-correlation.d.ts.map +1 -0
  33. package/dist/package-correlation.js +76 -0
  34. package/dist/package-correlation.js.map +1 -0
  35. package/dist/perforce-map-scope.d.ts +56 -0
  36. package/dist/perforce-map-scope.d.ts.map +1 -0
  37. package/dist/perforce-map-scope.js +284 -0
  38. package/dist/perforce-map-scope.js.map +1 -0
  39. package/dist/perforce.d.ts +105 -0
  40. package/dist/perforce.d.ts.map +1 -0
  41. package/dist/perforce.js +441 -0
  42. package/dist/perforce.js.map +1 -0
  43. package/dist/playback.d.ts +60 -0
  44. package/dist/playback.d.ts.map +1 -0
  45. package/dist/playback.js +168 -0
  46. package/dist/playback.js.map +1 -0
  47. package/dist/revision-materialization.d.ts +14 -0
  48. package/dist/revision-materialization.d.ts.map +1 -0
  49. package/dist/revision-materialization.js +68 -0
  50. package/dist/revision-materialization.js.map +1 -0
  51. package/dist/revision-plan.d.ts +44 -0
  52. package/dist/revision-plan.d.ts.map +1 -0
  53. package/dist/revision-plan.js +84 -0
  54. package/dist/revision-plan.js.map +1 -0
  55. package/dist/schema.d.ts +7964 -0
  56. package/dist/schema.d.ts.map +1 -0
  57. package/dist/schema.js +292 -0
  58. package/dist/schema.js.map +1 -0
  59. package/dist/submitted-change-selection.d.ts +22 -0
  60. package/dist/submitted-change-selection.d.ts.map +1 -0
  61. package/dist/submitted-change-selection.js +101 -0
  62. package/dist/submitted-change-selection.js.map +1 -0
  63. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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9F,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+ES,CAAC;AAC7F,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE3E,eAAO,MAAM,kBAAkB;;;;EAc7B,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/E,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;sCAAsD,CAAC;AACjG,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAiD,CAAC;AACvF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAE7C,CAAC;AACF,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAAqD,CAAC;AAC/F,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCAA8C,CAAC;AACjF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA5GlC,8FAA8F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAE9F,kFAAkF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sCA0GD,CAAC"}
package/dist/schema.js ADDED
@@ -0,0 +1,292 @@
1
+ import { SavedWorldActor, SavedWorldPosition, SavedWorldVector } from "@ue-shed/protocol";
2
+ import { DateTime, Schema } from "effect";
3
+ const PositiveInt = Schema.Int.check(Schema.isGreaterThan(0));
4
+ const NonNegativeInt = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0));
5
+ export const ProjectRoot = Schema.NonEmptyString.pipe(Schema.brand("MapHistoryProjectRoot"));
6
+ export const ProjectRelativeMapPath = Schema.NonEmptyString.pipe(Schema.brand("ProjectRelativeMapPath"));
7
+ export const PerforceDepotPath = Schema.NonEmptyString.pipe(Schema.brand("PerforceDepotPath"));
8
+ export const PerforceChangeNumber = PositiveInt.pipe(Schema.brand("PerforceChangeNumber"));
9
+ export const UtcTimestamp = Schema.DateTimeUtcFromString.pipe(Schema.brand("MapHistoryUtcTimestamp"));
10
+ export const MapHistoryRange = Schema.Struct({
11
+ since: UtcTimestamp,
12
+ until: UtcTimestamp
13
+ }).check(Schema.makeFilter((range) => DateTime.toEpochMillis(range.since) <= DateTime.toEpochMillis(range.until)
14
+ ? undefined
15
+ : "The history range must end at or after its start."));
16
+ export const MapHistoryLimits = Schema.Struct({
17
+ maxChangelists: PositiveInt,
18
+ maxPackages: PositiveInt,
19
+ maxMaterializedFiles: PositiveInt,
20
+ maxConcurrency: PositiveInt,
21
+ maxDurationMs: PositiveInt
22
+ });
23
+ export const PerforceMapHistoryQuery = Schema.Struct({
24
+ projectRoot: ProjectRoot,
25
+ mapPath: ProjectRelativeMapPath,
26
+ range: MapHistoryRange,
27
+ limits: MapHistoryLimits
28
+ });
29
+ export const ActorIdentity = Schema.Union([
30
+ Schema.Struct({
31
+ kind: Schema.Literal("actor_guid"),
32
+ actorGuid: Schema.NonEmptyString
33
+ }),
34
+ Schema.Struct({
35
+ kind: Schema.Literal("object_path"),
36
+ packageName: Schema.NonEmptyString,
37
+ actorPath: Schema.NonEmptyString
38
+ })
39
+ ]);
40
+ /**
41
+ * Deep History request with an explicit mode tag. The legacy {@link PerforceMapHistoryQuery}
42
+ * remains the Deep History wire contract for existing CLI and Workbench callers.
43
+ */
44
+ export const PerforceDeepMapHistoryQuery = Schema.Struct({
45
+ mode: Schema.Literal("deep"),
46
+ projectRoot: ProjectRoot,
47
+ mapPath: ProjectRelativeMapPath,
48
+ range: MapHistoryRange,
49
+ limits: MapHistoryLimits
50
+ });
51
+ /** Pre-scan Investigation Target. Fast History stays anchored to the present-day projection. */
52
+ export const FastHistoryInvestigationTarget = Schema.Union([
53
+ Schema.Struct({
54
+ kind: Schema.Literal("actor"),
55
+ identity: ActorIdentity
56
+ }),
57
+ Schema.Struct({
58
+ kind: Schema.Literal("actor_class"),
59
+ classPath: Schema.NonEmptyString
60
+ })
61
+ ]);
62
+ export const PerforceFastMapHistoryQuery = Schema.Struct({
63
+ mode: Schema.Literal("fast"),
64
+ projectRoot: ProjectRoot,
65
+ mapPath: ProjectRelativeMapPath,
66
+ range: MapHistoryRange,
67
+ limits: MapHistoryLimits,
68
+ target: FastHistoryInvestigationTarget
69
+ });
70
+ /** Discriminated Map History request. Prefer this when a caller must choose Deep vs Fast. */
71
+ export const MapHistoryQuery = Schema.Union([
72
+ PerforceDeepMapHistoryQuery,
73
+ PerforceFastMapHistoryQuery
74
+ ]);
75
+ const ActorTransition = {
76
+ identity: ActorIdentity,
77
+ before: SavedWorldActor,
78
+ after: SavedWorldActor
79
+ };
80
+ export const MapChange = Schema.Union([
81
+ Schema.Struct({
82
+ kind: Schema.Literal("actor_added"),
83
+ identity: ActorIdentity,
84
+ after: SavedWorldActor
85
+ }),
86
+ Schema.Struct({
87
+ kind: Schema.Literal("actor_removed"),
88
+ identity: ActorIdentity,
89
+ before: SavedWorldActor
90
+ }),
91
+ Schema.Struct({
92
+ kind: Schema.Literal("actor_moved"),
93
+ ...ActorTransition,
94
+ beforeLocation: SavedWorldVector,
95
+ afterLocation: SavedWorldVector
96
+ }),
97
+ Schema.Struct({
98
+ kind: Schema.Literal("actor_label_changed"),
99
+ ...ActorTransition
100
+ }),
101
+ Schema.Struct({
102
+ kind: Schema.Literal("actor_class_changed"),
103
+ ...ActorTransition
104
+ }),
105
+ Schema.Struct({
106
+ kind: Schema.Literal("actor_package_changed"),
107
+ ...ActorTransition
108
+ }),
109
+ Schema.Struct({
110
+ kind: Schema.Literal("actor_position_resolution_changed"),
111
+ ...ActorTransition,
112
+ beforePosition: SavedWorldPosition,
113
+ afterPosition: SavedWorldPosition
114
+ }),
115
+ Schema.Struct({
116
+ kind: Schema.Literal("snapshot_coverage_changed"),
117
+ before: Schema.Struct({
118
+ completeness: Schema.Literals(["complete", "partial"]),
119
+ failedPackages: NonNegativeInt,
120
+ partialPackages: NonNegativeInt
121
+ }),
122
+ after: Schema.Struct({
123
+ completeness: Schema.Literals(["complete", "partial"]),
124
+ failedPackages: NonNegativeInt,
125
+ partialPackages: NonNegativeInt
126
+ })
127
+ })
128
+ ]);
129
+ export const MapHistoryDiagnostic = Schema.Struct({
130
+ code: Schema.NonEmptyString,
131
+ message: Schema.NonEmptyString,
132
+ retrySafe: Schema.Boolean
133
+ });
134
+ export const MapSnapshotDiff = Schema.Struct({
135
+ changes: Schema.Array(MapChange),
136
+ diagnostics: Schema.Array(MapHistoryDiagnostic)
137
+ });
138
+ export const PerforcePackageRevision = Schema.Struct({
139
+ depotPath: PerforceDepotPath,
140
+ revision: PositiveInt,
141
+ action: Schema.NonEmptyString
142
+ });
143
+ export const SavedPackageChangeEvidence = Schema.Struct({
144
+ depotPath: PerforceDepotPath,
145
+ packageName: Schema.NonEmptyString,
146
+ beforeRevision: Schema.NullOr(PositiveInt),
147
+ afterRevision: Schema.NullOr(PositiveInt),
148
+ action: Schema.NonEmptyString
149
+ });
150
+ export const UnclassifiedPackageChange = Schema.Struct({
151
+ depotPath: PerforceDepotPath,
152
+ packageName: Schema.NonEmptyString,
153
+ beforeRevision: Schema.NullOr(PositiveInt),
154
+ afterRevision: Schema.NullOr(PositiveInt),
155
+ action: Schema.NonEmptyString,
156
+ actorIdentities: Schema.Array(ActorIdentity),
157
+ reason: Schema.Literals([
158
+ "projection_unchanged",
159
+ "snapshot_partial",
160
+ "actor_identity_unavailable"
161
+ ])
162
+ });
163
+ export const PerforceMapRevision = Schema.Struct({
164
+ change: PerforceChangeNumber,
165
+ user: Schema.optionalKey(Schema.String),
166
+ description: Schema.optionalKey(Schema.String),
167
+ submittedAt: UtcTimestamp,
168
+ files: Schema.Array(PerforcePackageRevision),
169
+ changes: Schema.Array(MapChange),
170
+ unclassifiedPackageChanges: Schema.Array(UnclassifiedPackageChange),
171
+ completeness: Schema.Literals(["complete", "partial"]),
172
+ diagnostics: Schema.Array(MapHistoryDiagnostic)
173
+ });
174
+ /**
175
+ * Renderer-safe evidence for one reconstructed saved world. This deliberately excludes the
176
+ * temporary reconstruction root: consumers can inspect saved actor facts without gaining a path
177
+ * into the owned historical workspace, which is removed after the operation.
178
+ */
179
+ export const MapHistorySnapshot = Schema.Struct({
180
+ actors: Schema.Array(SavedWorldActor),
181
+ completeness: Schema.Literals(["complete", "partial"]),
182
+ diagnostics: Schema.Array(MapHistoryDiagnostic),
183
+ mapPackage: Schema.String,
184
+ mapPath: ProjectRelativeMapPath,
185
+ sourceKind: Schema.Literals(["level", "world_partition"]),
186
+ summary: Schema.Struct({
187
+ failedPackages: NonNegativeInt,
188
+ partialPackages: NonNegativeInt,
189
+ resolvedActors: NonNegativeInt,
190
+ scannedPackages: NonNegativeInt
191
+ })
192
+ });
193
+ /** Saved actor state immediately before the requested range. */
194
+ export const MapHistoryRangeStartSnapshot = MapHistorySnapshot;
195
+ /** Saved actor state at the requested range end. */
196
+ export const MapHistoryRangeEndSnapshot = MapHistorySnapshot;
197
+ export const PerforceMapHistory = Schema.Struct({
198
+ schemaVersion: Schema.Literal(1),
199
+ query: PerforceMapHistoryQuery,
200
+ mapDepotPath: PerforceDepotPath,
201
+ externalActorDepotRoot: Schema.optionalKey(PerforceDepotPath),
202
+ /** Absent only when the selected map did not exist immediately before the requested range. */
203
+ rangeStartSnapshot: Schema.optionalKey(MapHistoryRangeStartSnapshot),
204
+ /** Absent only when the selected map did not exist by the requested range end. */
205
+ rangeEndSnapshot: Schema.optionalKey(MapHistoryRangeEndSnapshot),
206
+ baseline: Schema.Union([
207
+ Schema.Struct({ status: Schema.Literal("available"), change: PerforceChangeNumber }),
208
+ Schema.Struct({ status: Schema.Literal("map_not_yet_created") })
209
+ ]),
210
+ revisions: Schema.Array(PerforceMapRevision),
211
+ completeness: Schema.Literals(["complete", "partial"]),
212
+ diagnostics: Schema.Array(MapHistoryDiagnostic)
213
+ });
214
+ export const FastHistoryAcquiredPackage = Schema.Struct({
215
+ depotFileSpec: PerforceDepotPath,
216
+ packageName: Schema.NonEmptyString,
217
+ role: Schema.Literals([
218
+ "selected_map",
219
+ "investigation_target_actor",
220
+ "investigation_target_class"
221
+ ])
222
+ });
223
+ /**
224
+ * Explicit Fast History coverage. Targeted acquisition must never claim a complete map corpus or
225
+ * historical class discovery.
226
+ */
227
+ export const FastHistoryTargetedCoverage = Schema.Struct({
228
+ kind: Schema.Literal("targeted"),
229
+ claimsCompleteMapCoverage: Schema.Literal(false),
230
+ claimsHistoricalClassCoverage: Schema.Literal(false),
231
+ investigationTarget: Schema.Union([
232
+ Schema.Struct({
233
+ kind: Schema.Literal("actor"),
234
+ identity: ActorIdentity,
235
+ actorGuid: Schema.optionalKey(Schema.NonEmptyString),
236
+ actorPath: Schema.NonEmptyString,
237
+ classPath: Schema.NonEmptyString,
238
+ packageName: Schema.NonEmptyString
239
+ }),
240
+ Schema.Struct({
241
+ kind: Schema.Literal("actor_class"),
242
+ classPath: Schema.NonEmptyString,
243
+ currentActorCount: NonNegativeInt
244
+ })
245
+ ]),
246
+ acquiredPackages: Schema.Array(FastHistoryAcquiredPackage)
247
+ });
248
+ export const PerforceFastMapHistory = Schema.Struct({
249
+ schemaVersion: Schema.Literal(1),
250
+ mode: Schema.Literal("fast"),
251
+ query: PerforceFastMapHistoryQuery,
252
+ coverage: FastHistoryTargetedCoverage,
253
+ mapDepotPath: PerforceDepotPath,
254
+ externalActorDepotRoot: Schema.optionalKey(PerforceDepotPath),
255
+ rangeStartSnapshot: Schema.optionalKey(MapHistoryRangeStartSnapshot),
256
+ rangeEndSnapshot: Schema.optionalKey(MapHistoryRangeEndSnapshot),
257
+ baseline: Schema.Union([
258
+ Schema.Struct({ status: Schema.Literal("available"), change: PerforceChangeNumber }),
259
+ Schema.Struct({ status: Schema.Literal("map_not_yet_created") })
260
+ ]),
261
+ revisions: Schema.Array(PerforceMapRevision),
262
+ completeness: Schema.Literals(["complete", "partial"]),
263
+ diagnostics: Schema.Array(MapHistoryDiagnostic)
264
+ });
265
+ export const MapHistoryDeepResult = Schema.Struct({
266
+ mode: Schema.Literal("deep"),
267
+ history: PerforceMapHistory
268
+ });
269
+ /** Discriminated Map History result. Deep History documents remain nestable without altering their wire shape. */
270
+ export const MapHistoryResult = Schema.Union([MapHistoryDeepResult, PerforceFastMapHistory]);
271
+ export const MapHistoryProgress = Schema.Struct({
272
+ phase: Schema.Literals([
273
+ "idle",
274
+ "resolving_scope",
275
+ "listing_changes",
276
+ "materializing_baseline",
277
+ "applying_revision",
278
+ "parsing",
279
+ "diffing",
280
+ "ready",
281
+ "failed"
282
+ ]),
283
+ processedChangelists: NonNegativeInt,
284
+ totalChangelists: NonNegativeInt
285
+ });
286
+ export const decodePerforceMapHistoryQuery = Schema.decodeUnknownEffect(PerforceMapHistoryQuery);
287
+ export const decodePerforceMapHistory = Schema.decodeUnknownEffect(PerforceMapHistory);
288
+ export const decodePerforceFastMapHistoryQuery = Schema.decodeUnknownEffect(PerforceFastMapHistoryQuery);
289
+ export const decodePerforceFastMapHistory = Schema.decodeUnknownEffect(PerforceFastMapHistory);
290
+ export const decodeMapHistoryQuery = Schema.decodeUnknownEffect(MapHistoryQuery);
291
+ export const decodeMapHistoryResult = Schema.decodeUnknownEffect(MapHistoryResult);
292
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { Effect } from "effect";
2
+ import { MapHistoryError } from "./errors.js";
3
+ import { PerforceHistorySource, type PerforceSubmittedChange } from "./perforce.js";
4
+ import { UtcTimestamp, type MapHistoryRange } from "./schema.js";
5
+ export interface SelectedSubmittedChange extends Omit<PerforceSubmittedChange, "submittedAt"> {
6
+ readonly submittedAt: UtcTimestamp;
7
+ }
8
+ export interface SubmittedChangeSelection {
9
+ readonly baseline: SelectedSubmittedChange | undefined;
10
+ readonly revisions: readonly SelectedSubmittedChange[];
11
+ }
12
+ export interface SelectSubmittedChangesOptions {
13
+ readonly fileSpecs: readonly string[];
14
+ readonly maxChangelists: number;
15
+ readonly range: MapHistoryRange;
16
+ }
17
+ /**
18
+ * Pages only a resolved map scope, retaining the closest submitted changelist before the range as
19
+ * its baseline and ordering in-range changelists from oldest to newest.
20
+ */
21
+ export declare function selectSubmittedChanges(options: SelectSubmittedChangesOptions): Effect.Effect<SubmittedChangeSelection, MapHistoryError, PerforceHistorySource>;
22
+ //# sourceMappingURL=submitted-change-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitted-change-selection.d.ts","sourceRoot":"","sources":["../src/submitted-change-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAU,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAIjE,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,uBAAuB,EAAE,aAAa,CAAC;IAC5F,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;CACnC;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,SAAS,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CAChC;AAkDD;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,OAAO,EAAE,6BAA6B,GACpC,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAmFjF"}
@@ -0,0 +1,101 @@
1
+ import { DateTime, Effect, Schema } from "effect";
2
+ import { MapHistoryError } from "./errors.js";
3
+ import { PerforceHistorySource } from "./perforce.js";
4
+ import { UtcTimestamp } from "./schema.js";
5
+ const decodeUtcTimestamp = Schema.decodeUnknownEffect(UtcTimestamp);
6
+ function selectionError(message, recovery) {
7
+ return new MapHistoryError({
8
+ kind: "perforce_command",
9
+ message,
10
+ recovery,
11
+ retrySafe: false
12
+ });
13
+ }
14
+ function resourceLimitError(maxChangelists) {
15
+ return new MapHistoryError({
16
+ kind: "resource_limit",
17
+ message: `The selected history contains more than ${maxChangelists} changelists.`,
18
+ recovery: "Narrow the time range or raise maxChangelists explicitly.",
19
+ retrySafe: false
20
+ });
21
+ }
22
+ function normalizeSubmittedChange(change) {
23
+ if (change.submittedAt === undefined) {
24
+ return Effect.fail(selectionError(`Submitted changelist ${change.change} has no normalized submission timestamp.`, "Check the Perforce server response and retry."));
25
+ }
26
+ return decodeUtcTimestamp(change.submittedAt).pipe(Effect.map((submittedAt) => ({
27
+ change: { ...change, submittedAt },
28
+ submittedAtMillis: DateTime.toEpochMillis(submittedAt)
29
+ })), Effect.mapError(() => selectionError(`Submitted changelist ${change.change} has an invalid submission timestamp.`, "Check the Perforce server response and retry.")));
30
+ }
31
+ /**
32
+ * Pages only a resolved map scope, retaining the closest submitted changelist before the range as
33
+ * its baseline and ordering in-range changelists from oldest to newest.
34
+ */
35
+ export function selectSubmittedChanges(options) {
36
+ return Effect.fn("MapHistory.selectSubmittedChanges")(function* () {
37
+ if (options.fileSpecs.length === 0) {
38
+ return yield* Effect.fail(new MapHistoryError({
39
+ kind: "invalid_target",
40
+ message: "Map history needs at least one resolved Perforce file scope.",
41
+ recovery: "Resolve the selected map to a Perforce depot path before listing history.",
42
+ retrySafe: false
43
+ }));
44
+ }
45
+ const source = yield* PerforceHistorySource;
46
+ const selected = new Map();
47
+ const since = DateTime.toEpochMillis(options.range.since);
48
+ const until = DateTime.toEpochMillis(options.range.until);
49
+ const pageLimit = Math.min(50, options.maxChangelists + 1);
50
+ let baseline;
51
+ let beforeChange;
52
+ while (true) {
53
+ const fileSpec = options.fileSpecs.length === 1 ? options.fileSpecs[0] : [...options.fileSpecs];
54
+ if (fileSpec === undefined) {
55
+ return yield* Effect.die("Map history file scope disappeared after validation.");
56
+ }
57
+ const page = yield* source.listSubmittedChangelists({
58
+ ...(beforeChange === undefined ? {} : { beforeChange }),
59
+ fileSpec,
60
+ limit: pageLimit
61
+ });
62
+ if (page.items.length === 0) {
63
+ if (page.hasMore) {
64
+ return yield* Effect.fail(selectionError("Perforce reported more submitted changelists without a result page.", "Check the Perforce server response and retry."));
65
+ }
66
+ break;
67
+ }
68
+ const timed = [];
69
+ for (const change of page.items) {
70
+ timed.push(yield* normalizeSubmittedChange(change));
71
+ }
72
+ timed.sort((left, right) => right.change.change - left.change.change);
73
+ let encounteredBaseline = false;
74
+ for (const candidate of timed) {
75
+ if (candidate.submittedAtMillis < since) {
76
+ baseline ??= candidate.change;
77
+ encounteredBaseline = true;
78
+ continue;
79
+ }
80
+ if (candidate.submittedAtMillis > until)
81
+ continue;
82
+ selected.set(candidate.change.change, candidate.change);
83
+ if (selected.size > options.maxChangelists) {
84
+ return yield* Effect.fail(resourceLimitError(options.maxChangelists));
85
+ }
86
+ }
87
+ if (encounteredBaseline || !page.hasMore)
88
+ break;
89
+ if (page.nextBeforeChange === null ||
90
+ (beforeChange !== undefined && page.nextBeforeChange >= beforeChange)) {
91
+ return yield* Effect.fail(selectionError("Perforce submitted-changelist pagination did not provide a descending cursor.", "Check the Perforce server response and retry."));
92
+ }
93
+ beforeChange = page.nextBeforeChange;
94
+ }
95
+ return {
96
+ baseline,
97
+ revisions: [...selected.values()].sort((left, right) => left.change - right.change)
98
+ };
99
+ })();
100
+ }
101
+ //# sourceMappingURL=submitted-change-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitted-change-selection.js","sourceRoot":"","sources":["../src/submitted-change-selection.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@ue-shed/map-history",
3
+ "version": "0.1.0",
4
+ "description": "Headless Perforce-backed history and playback for saved Unreal Engine maps.",
5
+ "homepage": "https://github.com/ue-shed/ue-shed#readme",
6
+ "bugs": {
7
+ "url": "https://github.com/ue-shed/ue-shed/issues"
8
+ },
9
+ "license": "MIT",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/ue-shed/ue-shed.git",
13
+ "directory": "packages/map-history"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "type": "module",
21
+ "sideEffects": false,
22
+ "main": "./dist/index.js",
23
+ "types": "./dist/index.d.ts",
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js"
28
+ },
29
+ "./contract": {
30
+ "types": "./dist/schema.d.ts",
31
+ "import": "./dist/schema.js"
32
+ },
33
+ "./playback": {
34
+ "types": "./dist/playback.d.ts",
35
+ "import": "./dist/playback.js"
36
+ }
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "dependencies": {
42
+ "@ue-shed/protocol": "0.1.0",
43
+ "@ue-shed/unreal-assets": "0.1.0",
44
+ "effect": "4.0.0-beta.98",
45
+ "p4client-ts": "0.7.1"
46
+ },
47
+ "devDependencies": {
48
+ "@effect/vitest": "4.0.0-beta.98"
49
+ },
50
+ "engines": {
51
+ "node": ">=22.14.0"
52
+ },
53
+ "scripts": {
54
+ "build": "tsc -p tsconfig.build.json",
55
+ "typecheck": "tsc --noEmit"
56
+ }
57
+ }