unleash-server 4.17.0-beta.4 → 4.17.0-beta.6
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.
- package/dist/lib/db/suggest-change-store.d.ts +2 -1
- package/dist/lib/db/suggest-change-store.js +12 -3
- package/dist/lib/db/suggest-change-store.js.map +1 -1
- package/dist/lib/middleware/conditional-middleware.js +2 -3
- package/dist/lib/middleware/conditional-middleware.js.map +1 -1
- package/dist/lib/types/model.d.ts +6 -13
- package/dist/lib/types/model.js +9 -17
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/stores/suggest-change-store.d.ts +2 -1
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.d.ts +1 -0
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js +59 -0
- package/dist/test/e2e/api/admin/conditional-middleware.e2e.test.js.map +1 -0
- package/dist/test/fixtures/fake-suggest-change-store.d.ts +2 -1
- package/dist/test/fixtures/fake-suggest-change-store.js +5 -0
- package/dist/test/fixtures/fake-suggest-change-store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{FeatureMetricsChart.fe4ea81d.js → FeatureMetricsChart.f4354baa.js} +1 -1
- package/frontend/build/static/{Playground.2379c953.js → Playground.ab93606a.js} +2 -2
- package/frontend/build/static/{index.d9cc0418.js → index.68e4e310.js} +77 -77
- package/frontend/package.json +3 -3
- package/package.json +5 -5
- package/frontend/build/static/merge.afa8c386.svg +0 -3
|
@@ -4,7 +4,7 @@ import { LogProvider } from '../logger';
|
|
|
4
4
|
import EventEmitter from 'events';
|
|
5
5
|
import { Knex } from 'knex';
|
|
6
6
|
import { PartialSome } from '../types/partial';
|
|
7
|
-
import { ISuggestChange, ISuggestChangeset } from '../types/model';
|
|
7
|
+
import { ISuggestChange, ISuggestChangeset, SuggestChangesetState } from '../types/model';
|
|
8
8
|
export declare class SuggestChangeStore implements ISuggestChangeStore {
|
|
9
9
|
private logger;
|
|
10
10
|
private eventBus;
|
|
@@ -23,4 +23,5 @@ export declare class SuggestChangeStore implements ISuggestChangeStore {
|
|
|
23
23
|
exists: (id: number) => Promise<boolean>;
|
|
24
24
|
mapRows: (rows?: any[]) => ISuggestChangeset[];
|
|
25
25
|
destroy(): void;
|
|
26
|
+
updateState(id: number, state: SuggestChangesetState): Promise<ISuggestChangeset>;
|
|
26
27
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SuggestChangeStore = void 0;
|
|
4
|
+
const model_1 = require("../types/model");
|
|
4
5
|
const T = {
|
|
5
6
|
SUGGEST_CHANGE: 'suggest_change',
|
|
6
7
|
SUGGEST_CHANGE_SET: 'suggest_change_set',
|
|
@@ -63,15 +64,17 @@ class SuggestChangeStore {
|
|
|
63
64
|
return this.mapRows(rows);
|
|
64
65
|
};
|
|
65
66
|
this.getForProject = async (project) => {
|
|
66
|
-
const rows = await this.buildSuggestChangeSetChangesQuery()
|
|
67
|
+
const rows = await this.buildSuggestChangeSetChangesQuery()
|
|
68
|
+
.where({
|
|
67
69
|
project,
|
|
68
|
-
})
|
|
70
|
+
})
|
|
71
|
+
.whereNot('state', model_1.SuggestChangesetState.DRAFT);
|
|
69
72
|
return this.mapRows(rows);
|
|
70
73
|
};
|
|
71
74
|
this.getDraftsForUser = async (userId, project) => {
|
|
72
75
|
const rows = await this.buildSuggestChangeSetChangesQuery().where({
|
|
73
76
|
'changeSet.created_by': userId,
|
|
74
|
-
state:
|
|
77
|
+
state: model_1.SuggestChangesetState.DRAFT,
|
|
75
78
|
project: project,
|
|
76
79
|
});
|
|
77
80
|
const changesets = this.mapRows(rows);
|
|
@@ -133,6 +136,12 @@ class SuggestChangeStore {
|
|
|
133
136
|
this.logger = getLogger('lib/db/suggest-change-store.ts');
|
|
134
137
|
}
|
|
135
138
|
destroy() { }
|
|
139
|
+
async updateState(id, state) {
|
|
140
|
+
await this.db(T.SUGGEST_CHANGE_SET)
|
|
141
|
+
.update('state', state)
|
|
142
|
+
.where({ id });
|
|
143
|
+
return this.get(id);
|
|
144
|
+
}
|
|
136
145
|
}
|
|
137
146
|
exports.SuggestChangeStore = SuggestChangeStore;
|
|
138
147
|
//# sourceMappingURL=suggest-change-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-change-store.js","sourceRoot":"","sources":["../../../src/lib/db/suggest-change-store.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"suggest-change-store.js","sourceRoot":"","sources":["../../../src/lib/db/suggest-change-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,12 @@ const conditionalMiddleware = (condition, middleware) => {
|
|
|
6
6
|
const router = (0, express_1.Router)();
|
|
7
7
|
router.use((req, res, next) => {
|
|
8
8
|
if (condition()) {
|
|
9
|
-
next
|
|
9
|
+
middleware(req, res, next);
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
|
|
12
|
+
next();
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
|
-
router.use(middleware);
|
|
16
15
|
return router;
|
|
17
16
|
};
|
|
18
17
|
exports.conditionalMiddleware = conditionalMiddleware;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditional-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/conditional-middleware.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAE1C,MAAM,qBAAqB,GAAG,CACjC,SAAwB,EACxB,UAA0B,EACZ,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,EAAE;YACb,
|
|
1
|
+
{"version":3,"file":"conditional-middleware.js","sourceRoot":"","sources":["../../../src/lib/middleware/conditional-middleware.ts"],"names":[],"mappings":";;;AAAA,qCAAiD;AAE1C,MAAM,qBAAqB,GAAG,CACjC,SAAwB,EACxB,UAA0B,EACZ,EAAE;IAChB,MAAM,MAAM,GAAG,IAAA,gBAAM,GAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1B,IAAI,SAAS,EAAE,EAAE;YACb,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI,EAAE,CAAC;SACV;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAfW,QAAA,qBAAqB,yBAehC"}
|
|
@@ -338,13 +338,12 @@ export interface ISuggestChange {
|
|
|
338
338
|
createdBy?: Pick<User, 'id' | 'username' | 'imageUrl'>;
|
|
339
339
|
createdAt?: Date;
|
|
340
340
|
}
|
|
341
|
-
export declare enum
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
CLOSED = "CLOSED"
|
|
341
|
+
export declare enum SuggestChangesetState {
|
|
342
|
+
DRAFT = "Draft",
|
|
343
|
+
APPROVED = "Approved",
|
|
344
|
+
IN_REVIEW = "In review",
|
|
345
|
+
APPLIED = "Applied",
|
|
346
|
+
CANCELLED = "Cancelled"
|
|
348
347
|
}
|
|
349
348
|
export declare enum SuggestChangeAction {
|
|
350
349
|
UPDATE_ENABLED = "updateEnabled",
|
|
@@ -352,12 +351,6 @@ export declare enum SuggestChangeAction {
|
|
|
352
351
|
UPDATE_STRATEGY = "strategyUpdate",
|
|
353
352
|
DELETE_STRATEGY = "strategyDelete"
|
|
354
353
|
}
|
|
355
|
-
export declare enum SuggestChangeEvent {
|
|
356
|
-
UPDATE_ENABLED = "updateFeatureEnabledEvent",
|
|
357
|
-
ADD_STRATEGY = "addStrategyEvent",
|
|
358
|
-
UPDATE_STRATEGY = "updateStrategyEvent",
|
|
359
|
-
DELETE_STRATEGY = "deleteStrategyEvent"
|
|
360
|
-
}
|
|
361
354
|
export interface ISuggestChangeEventData {
|
|
362
355
|
feature: string;
|
|
363
356
|
data: unknown;
|
package/dist/lib/types/model.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SuggestChangeAction = exports.SuggestChangesetState = exports.RoleType = exports.RoleName = exports.PermissionType = exports.WeightType = void 0;
|
|
4
4
|
var WeightType;
|
|
5
5
|
(function (WeightType) {
|
|
6
6
|
WeightType["VARIABLE"] = "variable";
|
|
@@ -25,15 +25,14 @@ var RoleType;
|
|
|
25
25
|
RoleType["ROOT"] = "root";
|
|
26
26
|
RoleType["PROJECT"] = "project";
|
|
27
27
|
})(RoleType = exports.RoleType || (exports.RoleType = {}));
|
|
28
|
-
var
|
|
29
|
-
(function (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
})(SuggestChangesetEvent = exports.SuggestChangesetEvent || (exports.SuggestChangesetEvent = {}));
|
|
28
|
+
var SuggestChangesetState;
|
|
29
|
+
(function (SuggestChangesetState) {
|
|
30
|
+
SuggestChangesetState["DRAFT"] = "Draft";
|
|
31
|
+
SuggestChangesetState["APPROVED"] = "Approved";
|
|
32
|
+
SuggestChangesetState["IN_REVIEW"] = "In review";
|
|
33
|
+
SuggestChangesetState["APPLIED"] = "Applied";
|
|
34
|
+
SuggestChangesetState["CANCELLED"] = "Cancelled";
|
|
35
|
+
})(SuggestChangesetState = exports.SuggestChangesetState || (exports.SuggestChangesetState = {}));
|
|
37
36
|
var SuggestChangeAction;
|
|
38
37
|
(function (SuggestChangeAction) {
|
|
39
38
|
SuggestChangeAction["UPDATE_ENABLED"] = "updateEnabled";
|
|
@@ -41,11 +40,4 @@ var SuggestChangeAction;
|
|
|
41
40
|
SuggestChangeAction["UPDATE_STRATEGY"] = "strategyUpdate";
|
|
42
41
|
SuggestChangeAction["DELETE_STRATEGY"] = "strategyDelete";
|
|
43
42
|
})(SuggestChangeAction = exports.SuggestChangeAction || (exports.SuggestChangeAction = {}));
|
|
44
|
-
var SuggestChangeEvent;
|
|
45
|
-
(function (SuggestChangeEvent) {
|
|
46
|
-
SuggestChangeEvent["UPDATE_ENABLED"] = "updateFeatureEnabledEvent";
|
|
47
|
-
SuggestChangeEvent["ADD_STRATEGY"] = "addStrategyEvent";
|
|
48
|
-
SuggestChangeEvent["UPDATE_STRATEGY"] = "updateStrategyEvent";
|
|
49
|
-
SuggestChangeEvent["DELETE_STRATEGY"] = "deleteStrategyEvent";
|
|
50
|
-
})(SuggestChangeEvent = exports.SuggestChangeEvent || (exports.SuggestChangeEvent = {}));
|
|
51
43
|
//# sourceMappingURL=model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/lib/types/model.ts"],"names":[],"mappings":";;;AAgBA,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,mCAAqB,CAAA;IACrB,yBAAW,CAAA;AACf,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAsOD,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,qCAAmB,CAAA;AACvB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,wDAAwD;IACxD,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACrB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;AACvB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAyHD,IAAY,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/lib/types/model.ts"],"names":[],"mappings":";;;AAgBA,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,mCAAqB,CAAA;IACrB,yBAAW,CAAA;AACf,CAAC,EAHW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAGrB;AAsOD,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,qCAAmB,CAAA;AACvB,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,IAAY,QAOX;AAPD,WAAY,QAAQ;IAChB,wDAAwD;IACxD,2BAAe,CAAA;IACf,6BAAiB,CAAA;IACjB,6BAAiB,CAAA;IACjB,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACrB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AAED,IAAY,QAGX;AAHD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;AACvB,CAAC,EAHW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAGnB;AAyHD,IAAY,qBAMX;AAND,WAAY,qBAAqB;IAC7B,wCAAe,CAAA;IACf,8CAAqB,CAAA;IACrB,gDAAuB,CAAA;IACvB,4CAAmB,CAAA;IACnB,gDAAuB,CAAA;AAC3B,CAAC,EANW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAMhC;AAED,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC3B,uDAAgC,CAAA;IAChC,mDAA4B,CAAA;IAC5B,yDAAkC,CAAA;IAClC,yDAAkC,CAAA;AACtC,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Store } from './store';
|
|
2
|
-
import { ISuggestChange, ISuggestChangeset } from '../model';
|
|
2
|
+
import { ISuggestChange, ISuggestChangeset, SuggestChangesetState } from '../model';
|
|
3
3
|
import { PartialSome } from '../partial';
|
|
4
4
|
export interface ISuggestChangeStore extends Store<ISuggestChangeset, number> {
|
|
5
5
|
create(suggestChangeSet: PartialSome<ISuggestChangeset, 'id' | 'createdBy' | 'createdAt'>, userId: number): Promise<ISuggestChangeset>;
|
|
6
6
|
addChangeToSet(change: PartialSome<ISuggestChange, 'id' | 'createdBy' | 'createdAt'>, changeSetID: number, userId: number): Promise<void>;
|
|
7
7
|
get(id: number): Promise<ISuggestChangeset>;
|
|
8
|
+
updateState(id: number, state: SuggestChangesetState): Promise<ISuggestChangeset>;
|
|
8
9
|
getAll(): Promise<ISuggestChangeset[]>;
|
|
9
10
|
getForProject(project: string): Promise<ISuggestChangeset[]>;
|
|
10
11
|
getDraftsForUser(userId: number, project: string): Promise<ISuggestChangeset[]>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const conditional_middleware_1 = require("../../../../lib/middleware/conditional-middleware");
|
|
8
|
+
const supertest_1 = __importDefault(require("supertest"));
|
|
9
|
+
test('disabled middleware should not block paths that use the same path', async () => {
|
|
10
|
+
const app = (0, express_1.default)();
|
|
11
|
+
const path = '/api/admin/projects';
|
|
12
|
+
app.use(path, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
13
|
+
res.send({ suggestChanges: 'hello' });
|
|
14
|
+
}));
|
|
15
|
+
app.get(path, (req, res) => {
|
|
16
|
+
res.json({ projects: [] });
|
|
17
|
+
});
|
|
18
|
+
await (0, supertest_1.default)(app)
|
|
19
|
+
.get('/api/admin/projects')
|
|
20
|
+
.expect(200, { projects: [] });
|
|
21
|
+
});
|
|
22
|
+
test('should return 404 when path is not enabled', async () => {
|
|
23
|
+
const app = (0, express_1.default)();
|
|
24
|
+
const path = '/api/admin/projects';
|
|
25
|
+
app.use(`${path}/suggest-changes`, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
26
|
+
res.send({ suggestChanges: 'hello' });
|
|
27
|
+
}));
|
|
28
|
+
app.get(path, (req, res) => {
|
|
29
|
+
res.json({ projects: [] });
|
|
30
|
+
});
|
|
31
|
+
await (0, supertest_1.default)(app).get('/api/admin/projects/suggest-changes').expect(404);
|
|
32
|
+
});
|
|
33
|
+
test('should respect ordering of endpoints', async () => {
|
|
34
|
+
const app = (0, express_1.default)();
|
|
35
|
+
const path = '/api/admin/projects';
|
|
36
|
+
app.use(path, (0, conditional_middleware_1.conditionalMiddleware)(() => true, (req, res) => {
|
|
37
|
+
res.json({ name: 'Suggest changes' });
|
|
38
|
+
}));
|
|
39
|
+
app.get(path, (req, res) => {
|
|
40
|
+
res.json({ projects: [] });
|
|
41
|
+
});
|
|
42
|
+
await (0, supertest_1.default)(app)
|
|
43
|
+
.get('/api/admin/projects')
|
|
44
|
+
.expect(200, { name: 'Suggest changes' });
|
|
45
|
+
});
|
|
46
|
+
test('disabled middleware should not block paths that use the same basepath', async () => {
|
|
47
|
+
const app = (0, express_1.default)();
|
|
48
|
+
const path = '/api/admin/projects';
|
|
49
|
+
app.use(`${path}/suggest-changes`, (0, conditional_middleware_1.conditionalMiddleware)(() => false, (req, res) => {
|
|
50
|
+
res.json({ name: 'Suggest changes' });
|
|
51
|
+
}));
|
|
52
|
+
app.get(path, (req, res) => {
|
|
53
|
+
res.json({ projects: [] });
|
|
54
|
+
});
|
|
55
|
+
await (0, supertest_1.default)(app)
|
|
56
|
+
.get('/api/admin/projects')
|
|
57
|
+
.expect(200, { projects: [] });
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=conditional-middleware.e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conditional-middleware.e2e.test.js","sourceRoot":"","sources":["../../../../../src/test/e2e/api/admin/conditional-middleware.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ISuggestChangeStore } from '../../lib/types/stores/suggest-change-store';
|
|
2
|
-
import { ISuggestChange, ISuggestChangeset } from '../../lib/types/model';
|
|
2
|
+
import { ISuggestChange, ISuggestChangeset, SuggestChangesetState } from '../../lib/types/model';
|
|
3
3
|
import { PartialSome } from '../../lib/types/partial';
|
|
4
4
|
export default class FakeSuggestChangeStore implements ISuggestChangeStore {
|
|
5
5
|
suggestChanges: ISuggestChangeset[];
|
|
@@ -15,4 +15,5 @@ export default class FakeSuggestChangeStore implements ISuggestChangeStore {
|
|
|
15
15
|
deleteAll(): Promise<void>;
|
|
16
16
|
destroy(): void;
|
|
17
17
|
exists(key: number): Promise<boolean>;
|
|
18
|
+
updateState(id: number, state: SuggestChangesetState): Promise<ISuggestChangeset>;
|
|
18
19
|
}
|
|
@@ -51,6 +51,11 @@ class FakeSuggestChangeStore {
|
|
|
51
51
|
exists(key) {
|
|
52
52
|
return Promise.resolve(Boolean(key));
|
|
53
53
|
}
|
|
54
|
+
updateState(id, state) {
|
|
55
|
+
const changeSet = this.suggestChanges.find((s) => s.id === id);
|
|
56
|
+
changeSet.state = state;
|
|
57
|
+
return Promise.resolve(undefined);
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
exports.default = FakeSuggestChangeStore;
|
|
56
61
|
//# sourceMappingURL=fake-suggest-change-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fake-suggest-change-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-suggest-change-store.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fake-suggest-change-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-suggest-change-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
href="https://fonts.googleapis.com/css2?family=Sen:wght@400;700;800&display=swap"
|
|
16
16
|
rel="stylesheet"
|
|
17
17
|
/>
|
|
18
|
-
<script type="module" crossorigin src="/static/index.
|
|
18
|
+
<script type="module" crossorigin src="/static/index.68e4e310.js"></script>
|
|
19
19
|
<link rel="stylesheet" href="/static/index.8ff70acc.css">
|
|
20
20
|
</head>
|
|
21
21
|
<body>
|