@shapeshift-labs/frontier-engine 0.0.0 → 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.
@@ -0,0 +1,268 @@
1
+ export function readProfilePlans(profile, label = 'profile') {
2
+ if (profile === undefined || profile === null || profile.plans === undefined)
3
+ return undefined;
4
+ return normalizeProfilePlans(profile.plans, label + ' plans');
5
+ }
6
+ export function cloneProfilePlans(plans) {
7
+ return plans === undefined ? undefined : normalizeProfilePlans(plans, 'profile plans');
8
+ }
9
+ export function mergeProfilePlans(...items) {
10
+ let out;
11
+ for (let i = 0, length = items.length; i < length; i++) {
12
+ const item = items[i];
13
+ if (item === undefined)
14
+ continue;
15
+ const normalized = normalizeProfilePlans(item, 'profile plans');
16
+ if (out === undefined)
17
+ out = {};
18
+ if (normalized.diff !== undefined)
19
+ out.diff = { ...(out.diff || {}), ...normalized.diff };
20
+ if (normalized.equality !== undefined)
21
+ out.equality = { ...(out.equality || {}), ...normalized.equality };
22
+ if (normalized.history !== undefined)
23
+ out.history = { ...(out.history || {}), ...normalized.history };
24
+ if (normalized.codec !== undefined)
25
+ out.codec = { ...(out.codec || {}), ...normalized.codec };
26
+ if (normalized.state !== undefined)
27
+ out.state = { ...(out.state || {}), ...normalized.state };
28
+ if (normalized.crdt !== undefined)
29
+ out.crdt = { ...(out.crdt || {}), ...normalized.crdt };
30
+ }
31
+ return out === undefined || Object.keys(out).length === 0 ? undefined : out;
32
+ }
33
+ export function createEngineProfilePlansSnapshot(inherited, snapshot) {
34
+ const generated = {
35
+ diff: createDiffPlan(snapshot),
36
+ equality: createEqualityPlan(snapshot),
37
+ history: {
38
+ strategy: snapshot.historyStrategy || 'auto'
39
+ },
40
+ codec: {
41
+ patch: 'auto',
42
+ history: 'binary'
43
+ }
44
+ };
45
+ return mergeProfilePlans(inherited, generated);
46
+ }
47
+ export function createStateProfilePlansSnapshot(inherited, stats) {
48
+ const state = {
49
+ routing: 'patch-router',
50
+ apply: 'owned-mutable'
51
+ };
52
+ if (stats.watches !== 0) {
53
+ state.watches = stats.watches;
54
+ if (stats.exactWatches !== 0)
55
+ state.exactWatches = stats.exactWatches;
56
+ if (stats.wildcardWatches !== 0)
57
+ state.wildcardWatches = stats.wildcardWatches;
58
+ if (stats.fieldWatches !== 0)
59
+ state.fieldWatches = stats.fieldWatches;
60
+ if (stats.rangeWatches !== 0)
61
+ state.rangeWatches = stats.rangeWatches;
62
+ }
63
+ return mergeProfilePlans(inherited, { state });
64
+ }
65
+ export function createCrdtProfilePlansSnapshot(inherited, nativeTextProfileCount) {
66
+ const crdt = {
67
+ update: nativeTextProfileCount === 0 ? 'binary' : 'columnar-text',
68
+ text: nativeTextProfileCount === 0 ? 'chunked-ids' : 'native-piece'
69
+ };
70
+ return mergeProfilePlans(inherited, {
71
+ codec: { crdt: crdt.update === 'columnar-text' ? 'columnar-text' : 'binary' },
72
+ crdt
73
+ });
74
+ }
75
+ function createDiffPlan(snapshot) {
76
+ const plan = {
77
+ strategy: snapshot.schemaCount === 0
78
+ ? 'structural'
79
+ : snapshot.adaptivePlan
80
+ ? 'adaptive-schema'
81
+ : 'schema',
82
+ schemaCount: snapshot.schemaCount
83
+ };
84
+ if (snapshot.schemaPaths !== undefined && snapshot.schemaPaths.length !== 0) {
85
+ plan.paths = clonePathList(snapshot.schemaPaths);
86
+ }
87
+ return plan;
88
+ }
89
+ function createEqualityPlan(snapshot) {
90
+ const settings = snapshot.settings || {};
91
+ if (isObjectKey(settings.versionKey)) {
92
+ return { strategy: 'token', token: 'versionKey', key: settings.versionKey };
93
+ }
94
+ if (isObjectKey(settings.fingerprintKey)) {
95
+ return { strategy: 'token', token: 'fingerprintKey', key: settings.fingerprintKey };
96
+ }
97
+ return {
98
+ strategy: snapshot.schemaCount === 0 ? 'fast-json' : 'schema'
99
+ };
100
+ }
101
+ function normalizeProfilePlans(value, label) {
102
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
103
+ throw new TypeError(label + ' must be an object');
104
+ }
105
+ const input = value;
106
+ const out = {};
107
+ if (input.diff !== undefined)
108
+ out.diff = normalizeDiffPlan(input.diff, label + '.diff');
109
+ if (input.equality !== undefined)
110
+ out.equality = normalizeEqualityPlan(input.equality, label + '.equality');
111
+ if (input.history !== undefined)
112
+ out.history = normalizeHistoryPlan(input.history, label + '.history');
113
+ if (input.codec !== undefined)
114
+ out.codec = normalizeCodecPlan(input.codec, label + '.codec');
115
+ if (input.state !== undefined)
116
+ out.state = normalizeStatePlan(input.state, label + '.state');
117
+ if (input.crdt !== undefined)
118
+ out.crdt = normalizeCrdtPlan(input.crdt, label + '.crdt');
119
+ return out;
120
+ }
121
+ function normalizeDiffPlan(value, label) {
122
+ const input = readPlanObject(value, label);
123
+ const out = {};
124
+ if (input.strategy !== undefined) {
125
+ if (input.strategy !== 'structural' && input.strategy !== 'schema' && input.strategy !== 'adaptive-schema') {
126
+ throw new TypeError(label + '.strategy is invalid');
127
+ }
128
+ out.strategy = input.strategy;
129
+ }
130
+ if (input.schemaCount !== undefined)
131
+ out.schemaCount = readNonNegativeInteger(input.schemaCount, label + '.schemaCount');
132
+ if (input.paths !== undefined)
133
+ out.paths = clonePathList(input.paths);
134
+ return out;
135
+ }
136
+ function normalizeEqualityPlan(value, label) {
137
+ const input = readPlanObject(value, label);
138
+ const out = {};
139
+ if (input.strategy !== undefined) {
140
+ if (input.strategy !== 'fast-json' && input.strategy !== 'schema' && input.strategy !== 'token') {
141
+ throw new TypeError(label + '.strategy is invalid');
142
+ }
143
+ out.strategy = input.strategy;
144
+ }
145
+ if (input.token !== undefined) {
146
+ if (input.token !== 'versionKey' && input.token !== 'fingerprintKey')
147
+ throw new TypeError(label + '.token is invalid');
148
+ out.token = input.token;
149
+ }
150
+ if (input.key !== undefined) {
151
+ if (!isObjectKey(input.key))
152
+ throw new TypeError(label + '.key must be a string or number');
153
+ out.key = input.key;
154
+ }
155
+ return out;
156
+ }
157
+ function normalizeHistoryPlan(value, label) {
158
+ const input = readPlanObject(value, label);
159
+ const out = {};
160
+ if (input.strategy !== undefined) {
161
+ if (input.strategy !== 'auto' &&
162
+ input.strategy !== 'string-append' &&
163
+ input.strategy !== 'row-object-assign' &&
164
+ input.strategy !== 'object-assign' &&
165
+ input.strategy !== 'scalar-object') {
166
+ throw new TypeError(label + '.strategy is invalid');
167
+ }
168
+ out.strategy = input.strategy;
169
+ }
170
+ return out;
171
+ }
172
+ function normalizeCodecPlan(value, label) {
173
+ const input = readPlanObject(value, label);
174
+ const out = {};
175
+ if (input.patch !== undefined) {
176
+ if (input.patch !== 'auto' && input.patch !== 'json' && input.patch !== 'binary')
177
+ throw new TypeError(label + '.patch is invalid');
178
+ out.patch = input.patch;
179
+ }
180
+ if (input.history !== undefined) {
181
+ if (input.history !== 'auto' && input.history !== 'binary' && input.history !== 'binary-columnar') {
182
+ throw new TypeError(label + '.history is invalid');
183
+ }
184
+ out.history = input.history;
185
+ }
186
+ if (input.crdt !== undefined) {
187
+ if (input.crdt !== 'auto' && input.crdt !== 'json' && input.crdt !== 'binary' && input.crdt !== 'columnar-text') {
188
+ throw new TypeError(label + '.crdt is invalid');
189
+ }
190
+ out.crdt = input.crdt;
191
+ }
192
+ return out;
193
+ }
194
+ function normalizeStatePlan(value, label) {
195
+ const input = readPlanObject(value, label);
196
+ const out = {};
197
+ if (input.routing !== undefined) {
198
+ if (input.routing !== 'patch-router')
199
+ throw new TypeError(label + '.routing is invalid');
200
+ out.routing = input.routing;
201
+ }
202
+ if (input.apply !== undefined) {
203
+ if (input.apply !== 'owned-mutable' && input.apply !== 'immutable')
204
+ throw new TypeError(label + '.apply is invalid');
205
+ out.apply = input.apply;
206
+ }
207
+ copyOptionalNonNegativeInteger(out, input, 'watches', label);
208
+ copyOptionalNonNegativeInteger(out, input, 'exactWatches', label);
209
+ copyOptionalNonNegativeInteger(out, input, 'wildcardWatches', label);
210
+ copyOptionalNonNegativeInteger(out, input, 'fieldWatches', label);
211
+ copyOptionalNonNegativeInteger(out, input, 'rangeWatches', label);
212
+ return out;
213
+ }
214
+ function normalizeCrdtPlan(value, label) {
215
+ const input = readPlanObject(value, label);
216
+ const out = {};
217
+ if (input.update !== undefined) {
218
+ if (input.update !== 'auto' && input.update !== 'json' && input.update !== 'binary' && input.update !== 'columnar-text') {
219
+ throw new TypeError(label + '.update is invalid');
220
+ }
221
+ out.update = input.update;
222
+ }
223
+ if (input.text !== undefined) {
224
+ if (input.text !== 'chunked-ids' && input.text !== 'native-piece')
225
+ throw new TypeError(label + '.text is invalid');
226
+ out.text = input.text;
227
+ }
228
+ return out;
229
+ }
230
+ function readPlanObject(value, label) {
231
+ if (value === null || typeof value !== 'object' || Array.isArray(value))
232
+ throw new TypeError(label + ' must be an object');
233
+ return value;
234
+ }
235
+ function clonePathList(paths) {
236
+ if (!Array.isArray(paths))
237
+ throw new TypeError('profile plan paths must be an array');
238
+ const out = new Array(paths.length);
239
+ for (let i = 0, length = paths.length; i < length; i++) {
240
+ const path = paths[i];
241
+ if (!Array.isArray(path))
242
+ throw new TypeError('profile plan path must be an array');
243
+ const cloned = new Array(path.length);
244
+ for (let j = 0, pathLength = path.length; j < pathLength; j++) {
245
+ const segment = path[j];
246
+ if (!isObjectKey(segment))
247
+ throw new TypeError('profile plan path segments must be strings or numbers');
248
+ cloned[j] = segment;
249
+ }
250
+ out[i] = cloned;
251
+ }
252
+ return out;
253
+ }
254
+ function copyOptionalNonNegativeInteger(out, input, key, label) {
255
+ const value = input[key];
256
+ if (value === undefined)
257
+ return;
258
+ out[key] = readNonNegativeInteger(value, label + '.' + key);
259
+ }
260
+ function readNonNegativeInteger(value, label) {
261
+ if (!Number.isSafeInteger(value) || value < 0)
262
+ throw new TypeError(label + ' must be a non-negative safe integer');
263
+ return value;
264
+ }
265
+ function isObjectKey(value) {
266
+ return typeof value === 'string' || typeof value === 'number';
267
+ }
268
+ //# sourceMappingURL=profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../src/profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import type { DiffOptions, JsonObject, JsonPath, JsonValue, ObjectKey, Patch, PatchOperation } from '@shapeshift-labs/frontier/types';
2
+ import type { PatchHistoryBuilder, PatchHistoryCodecOptions } from '@shapeshift-labs/frontier-codec';
3
+ export type { DiffOptions, JsonObject, JsonPath, JsonValue, ObjectKey, Patch, PatchOperation, PatchHistoryBuilder, PatchHistoryCodecOptions };
4
+ export interface ProfilePlans {
5
+ diff?: DiffProfilePlan;
6
+ equality?: EqualityProfilePlan;
7
+ history?: HistoryProfilePlan;
8
+ codec?: CodecProfilePlan;
9
+ state?: StateProfilePlan;
10
+ crdt?: CrdtProfilePlan;
11
+ }
12
+ export interface DiffProfilePlan {
13
+ strategy?: 'structural' | 'schema' | 'adaptive-schema';
14
+ schemaCount?: number;
15
+ paths?: JsonPath[];
16
+ }
17
+ export interface EqualityProfilePlan {
18
+ strategy?: 'fast-json' | 'schema' | 'token';
19
+ token?: 'versionKey' | 'fingerprintKey';
20
+ key?: ObjectKey;
21
+ }
22
+ export interface HistoryProfilePlan {
23
+ strategy?: 'auto' | 'string-append' | 'row-object-assign' | 'object-assign' | 'scalar-object';
24
+ }
25
+ export interface CodecProfilePlan {
26
+ patch?: 'auto' | 'json' | 'binary';
27
+ history?: 'auto' | 'binary' | 'binary-columnar';
28
+ crdt?: 'auto' | 'json' | 'binary' | 'columnar-text';
29
+ }
30
+ export interface StateProfilePlan {
31
+ routing?: 'patch-router';
32
+ apply?: 'owned-mutable' | 'immutable';
33
+ watches?: number;
34
+ exactWatches?: number;
35
+ wildcardWatches?: number;
36
+ fieldWatches?: number;
37
+ rangeWatches?: number;
38
+ }
39
+ export interface CrdtProfilePlan {
40
+ update?: 'auto' | 'json' | 'binary' | 'columnar-text';
41
+ text?: 'chunked-ids' | 'native-piece';
42
+ }
43
+ export type SchemaField = ObjectKey | NestedObjectSchemaField;
44
+ export interface NestedObjectSchemaField {
45
+ key: ObjectKey;
46
+ type: 'object';
47
+ fields: SchemaField[];
48
+ }
49
+ export interface ObjectSchema {
50
+ type: 'object';
51
+ path?: JsonPath;
52
+ fields: SchemaField[];
53
+ }
54
+ export interface RecordArraySchema {
55
+ type: 'array';
56
+ path?: JsonPath;
57
+ key?: ObjectKey;
58
+ item: {
59
+ type: 'object';
60
+ key?: ObjectKey;
61
+ fields: SchemaField[];
62
+ };
63
+ }
64
+ export type SingleSchema = ObjectSchema | RecordArraySchema;
65
+ export interface MultiSchema {
66
+ schemas: SingleSchema[];
67
+ }
68
+ export type Schema = SingleSchema | MultiSchema;
69
+ export interface DiffProfile {
70
+ version?: 1;
71
+ settings?: EngineProfileSettings;
72
+ plans?: ProfilePlans;
73
+ schema?: SingleSchema;
74
+ schemas?: SingleSchema[];
75
+ }
76
+ export interface EngineProfileSettings {
77
+ cacheSize?: number;
78
+ adaptive?: boolean;
79
+ adaptiveThreshold?: number;
80
+ arrayKey?: ObjectKey | false | null;
81
+ autoArrayKey?: boolean;
82
+ recordKeyCandidates?: ObjectKey[] | false | null;
83
+ containerKeys?: ObjectKey[] | false | null;
84
+ stable?: boolean;
85
+ sortKeys?: boolean;
86
+ maxPatchOperations?: number | null;
87
+ versionKey?: ObjectKey;
88
+ fingerprintKey?: ObjectKey;
89
+ }
90
+ export interface EngineOptions<TValue extends JsonValue = JsonValue> extends DiffOptions<TValue> {
91
+ cacheSize?: number;
92
+ maxEntries?: number;
93
+ adaptive?: boolean;
94
+ adaptiveThreshold?: number;
95
+ schema?: Schema | null;
96
+ containerKeys?: ObjectKey[] | false | null;
97
+ profile?: DiffProfile | null;
98
+ }
99
+ export type TrainingSample<TSource extends JsonValue = JsonValue, TTarget extends JsonValue = JsonValue> = [TSource, TTarget] | {
100
+ source: TSource;
101
+ target: TTarget;
102
+ } | {
103
+ before: TSource;
104
+ after: TTarget;
105
+ };
106
+ export interface DiffEngine {
107
+ diff<TSource extends JsonValue, TTarget extends JsonValue>(source: TSource, target: TTarget, options?: DiffOptions<TSource | TTarget>): Patch;
108
+ diffInto<TSource extends JsonValue, TTarget extends JsonValue>(source: TSource, target: TTarget, patch: Patch, options?: DiffOptions<TSource | TTarget>): Patch;
109
+ equals<TSource extends JsonValue, TTarget extends JsonValue>(source: TSource, target: TTarget, options?: DiffOptions<TSource | TTarget>): boolean;
110
+ diffHistory<TSource extends JsonValue, TTarget extends JsonValue>(initial: TSource, states: TTarget[], options?: DiffOptions<TSource | TTarget>): Patch[];
111
+ encodeHistory(patches: Patch[], options?: PatchHistoryCodecOptions): Uint8Array;
112
+ decodeHistory(bytes: ArrayBuffer | ArrayBufferView, options?: PatchHistoryCodecOptions): Patch[];
113
+ applyHistory(source: JsonValue, patches: Patch[], options?: PatchHistoryCodecOptions): JsonValue;
114
+ applyEncodedHistory(source: JsonValue, bytes: ArrayBuffer | ArrayBufferView, options?: PatchHistoryCodecOptions): JsonValue;
115
+ createHistoryBuilder(): PatchHistoryBuilder;
116
+ clear(): void;
117
+ train(samples: TrainingSample[]): DiffProfile;
118
+ getProfile(): DiffProfile;
119
+ loadProfile(profile?: DiffProfile | null): void;
120
+ }
121
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACzB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,EACT,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACzB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,KAAK,CAAC,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACxC,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,mBAAmB,GAAG,eAAe,GAAG,eAAe,CAAC;CAC/F;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,iBAAiB,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC;IACtD,IAAI,CAAC,EAAE,aAAa,GAAG,cAAc,CAAC;CACvC;AAED,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,uBAAuB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ,CAAC;QACf,GAAG,CAAC,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,WAAW,EAAE,CAAC;KACvB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,WAAW,CAAC,MAAM,CAAC;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,SAAS,GAAG,SAAS,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,IACnG,CAAC,OAAO,EAAE,OAAO,CAAC,GAClB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACpC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,SAAS,SAAS,EACvD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,GACvC,KAAK,CAAC;IAET,QAAQ,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,SAAS,SAAS,EAC3D,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,GACvC,KAAK,CAAC;IAET,MAAM,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,SAAS,SAAS,EACzD,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,GACvC,OAAO,CAAC;IAEX,WAAW,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,SAAS,SAAS,EAC9D,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,GACvC,KAAK,EAAE,CAAC;IAEX,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,UAAU,CAAC;IAChF,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,KAAK,EAAE,CAAC;IACjG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjG,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,eAAe,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC5H,oBAAoB,IAAI,mBAAmB,CAAC;IAC5C,KAAK,IAAI,IAAI,CAAC;IACd,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAAC;IAC9C,UAAU,IAAI,WAAW,CAAC;IAC1B,WAAW,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;CACjD"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,32 +1,73 @@
1
1
  {
2
2
  "name": "@shapeshift-labs/frontier-engine",
3
- "version": "0.0.0",
4
- "description": "Reserved package name for the future Frontier planned diff engine package.",
3
+ "version": "0.1.0",
4
+ "description": "Stateful planned diff engine, adaptive profiles, and reusable diff planning for Frontier.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
- "main": "./index.js",
7
+ "sideEffects": false,
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+ssh://git@github.com/siliconjungle/-shapeshift-labs-frontier-engine.git"
11
+ },
12
+ "homepage": "https://github.com/siliconjungle/-shapeshift-labs-frontier-engine#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/siliconjungle/-shapeshift-labs-frontier-engine/issues"
15
+ },
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
8
18
  "exports": {
9
- ".": "./index.js",
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js",
22
+ "default": "./dist/index.js"
23
+ },
24
+ "./engine": {
25
+ "types": "./dist/engine.d.ts",
26
+ "import": "./dist/engine.js",
27
+ "default": "./dist/engine.js"
28
+ },
29
+ "./profile": {
30
+ "types": "./dist/profile.d.ts",
31
+ "import": "./dist/profile.js",
32
+ "default": "./dist/profile.js"
33
+ },
34
+ "./types": {
35
+ "types": "./dist/types.d.ts",
36
+ "default": "./dist/types.d.ts"
37
+ },
10
38
  "./package.json": "./package.json"
11
39
  },
12
40
  "files": [
13
- "index.js",
41
+ "dist",
14
42
  "README.md",
15
- "LICENSE"
43
+ "LICENSE",
44
+ "benchmarks/package-bench.mjs"
16
45
  ],
17
- "repository": {
18
- "type": "git",
19
- "url": "git+ssh://git@github.com/siliconjungle/-shapeshift-labs-frontier.git"
46
+ "engines": {
47
+ "node": ">=18"
20
48
  },
21
- "homepage": "https://github.com/siliconjungle/-shapeshift-labs-frontier#readme",
22
- "bugs": {
23
- "url": "https://github.com/siliconjungle/-shapeshift-labs-frontier/issues"
49
+ "dependencies": {
50
+ "@shapeshift-labs/frontier": "^0.1.5",
51
+ "@shapeshift-labs/frontier-codec": "^0.1.3"
52
+ },
53
+ "scripts": {
54
+ "build": "node build.mjs",
55
+ "test": "npm run build && npm run typecheck && node test/smoke.mjs",
56
+ "prepack": "npm run test",
57
+ "typecheck": "tsc -p tsconfig.json --noEmit",
58
+ "fuzz": "npm run build && node test/fuzz.mjs --cases 400",
59
+ "bench": "npm run build && node benchmarks/package-bench.mjs",
60
+ "pack:dry": "npm pack --dry-run"
61
+ },
62
+ "devDependencies": {
63
+ "typescript": "^6.0.3"
24
64
  },
25
65
  "keywords": [
26
66
  "frontier",
27
67
  "json",
28
68
  "diff",
29
69
  "engine",
30
- "reserved"
70
+ "adaptive",
71
+ "profile"
31
72
  ]
32
73
  }
package/index.js DELETED
@@ -1 +0,0 @@
1
- throw new Error('@shapeshift-labs/frontier-engine is reserved and not ready for use. Use @shapeshift-labs/frontier/engine until the package is implemented.');