@atlaskit/tmp-editor-statsig 2.1.15 → 2.2.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.
- package/CHANGELOG.md +16 -0
- package/dist/cjs/editor-experiments-test-utils.js +87 -10
- package/dist/cjs/experiments-config.js +50 -39
- package/dist/cjs/type-guards.js +26 -0
- package/dist/es2019/editor-experiments-test-utils.js +78 -12
- package/dist/es2019/experiments-config.js +29 -18
- package/dist/es2019/type-guards.js +19 -0
- package/dist/esm/editor-experiments-test-utils.js +89 -12
- package/dist/esm/experiments-config.js +29 -18
- package/dist/esm/type-guards.js +19 -0
- package/dist/types/editor-experiments-test-utils.d.ts +218 -12
- package/dist/types/experiments-config.d.ts +33 -18
- package/dist/types/setup.d.ts +7 -5
- package/dist/types/type-guards.d.ts +2 -0
- package/dist/types-ts4.5/editor-experiments-test-utils.d.ts +218 -12
- package/dist/types-ts4.5/experiments-config.d.ts +33 -18
- package/dist/types-ts4.5/setup.d.ts +7 -5
- package/dist/types-ts4.5/type-guards.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
4
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
5
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
3
6
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
7
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
8
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -7,7 +10,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
7
10
|
|
|
8
11
|
import { setupEditorExperiments } from './setup';
|
|
9
12
|
import { editorExperimentsConfig } from './experiments-config';
|
|
10
|
-
|
|
11
13
|
/**
|
|
12
14
|
* This is a utility function for testing editor experiments.
|
|
13
15
|
*
|
|
@@ -15,11 +17,11 @@ import { editorExperimentsConfig } from './experiments-config';
|
|
|
15
17
|
* ```ts
|
|
16
18
|
* eeTest('example-boolean', {
|
|
17
19
|
* true: () => {
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* expect(editorExperiment('example-boolean', true)).toBe(true);
|
|
21
|
+
* expect(editorExperiment('example-boolean', false)).toBe(false);
|
|
20
22
|
* },
|
|
21
23
|
* false: () => {
|
|
22
|
-
*
|
|
24
|
+
* expect(editorExperiment('example-boolean', false)).toBe(true);
|
|
23
25
|
* expect(editorExperiment('example-boolean', true)).toBe(false);
|
|
24
26
|
* },
|
|
25
27
|
* })
|
|
@@ -29,21 +31,24 @@ import { editorExperimentsConfig } from './experiments-config';
|
|
|
29
31
|
* ```ts
|
|
30
32
|
* eeTest('example-multivariate', {
|
|
31
33
|
* one: () => {
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(true);
|
|
35
|
+
* expect(editorExperiment('example-multivariate', 'two')).toBe(false);
|
|
34
36
|
* },
|
|
35
37
|
* two: () => {
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
+
* expect(editorExperiment('example-multivariate', 'two')).toBe(true);
|
|
39
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(false);
|
|
38
40
|
* },
|
|
39
41
|
* three: () => {
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
+
* expect(editorExperiment('example-multivariate', 'three')).toBe(true);
|
|
43
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(false);
|
|
42
44
|
* },
|
|
43
45
|
* })
|
|
44
46
|
* ```
|
|
47
|
+
*
|
|
48
|
+
* API based on Legacy ffTest API
|
|
49
|
+
* - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Legacy-API-lEGACY
|
|
45
50
|
*/
|
|
46
|
-
|
|
51
|
+
function eeTest(experimentName, cases, otherExperiments) {
|
|
47
52
|
setupEditorExperiments('test', {});
|
|
48
53
|
describe("eeTest: ".concat(experimentName), function () {
|
|
49
54
|
afterEach(function () {
|
|
@@ -76,4 +81,76 @@ export function eeTest(experimentName, cases, otherExperiments) {
|
|
|
76
81
|
};
|
|
77
82
|
}());
|
|
78
83
|
});
|
|
79
|
-
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* eeTest.describe() Wrapper utility for describe() that runs a test with a editor experiment overides.
|
|
88
|
+
*
|
|
89
|
+
* @example Single experiment
|
|
90
|
+
* ```ts
|
|
91
|
+
* eeTest.describe('Description of test "suite" containing nested suites and tests.', { 'example-boolean': true }, () => {
|
|
92
|
+
* it('should do the thing', () => {
|
|
93
|
+
* expect(editorExperiment('example-boolean', true)).toBe(true);
|
|
94
|
+
* });
|
|
95
|
+
* });
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
*
|
|
99
|
+
* @example Multiple experiment
|
|
100
|
+
* ```ts
|
|
101
|
+
* eeTest.describe('Description of test "suite" containing nested suites and tests.', { 'example-boolean': true, 'example-multivariate': 'three' }, () => {
|
|
102
|
+
* it('should do the thing', () => {
|
|
103
|
+
* expect(editorExperiment('example-boolean', true)).toBe(true);
|
|
104
|
+
* });
|
|
105
|
+
* });
|
|
106
|
+
* ```
|
|
107
|
+
*
|
|
108
|
+
* API based on next gen ffTest API
|
|
109
|
+
* - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Next-Generation-API-%E2%9C%A8
|
|
110
|
+
*/
|
|
111
|
+
eeTest.describe = function eeTestDescribe(experimentName, describeName) {
|
|
112
|
+
function eeTest(value) {
|
|
113
|
+
var describeBody = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
|
|
114
|
+
describe("".concat(describeName, " [").concat(value, "]"), function () {
|
|
115
|
+
beforeEach(function () {
|
|
116
|
+
setupEditorExperiments('test', _defineProperty({}, experimentName, value));
|
|
117
|
+
});
|
|
118
|
+
afterEach(function () {
|
|
119
|
+
setupEditorExperiments('test', {});
|
|
120
|
+
});
|
|
121
|
+
describeBody();
|
|
122
|
+
});
|
|
123
|
+
setupEditorExperiments('test', {});
|
|
124
|
+
}
|
|
125
|
+
function variant(value, describeBody) {
|
|
126
|
+
eeTest(value, describeBody);
|
|
127
|
+
}
|
|
128
|
+
function each(describeBody) {
|
|
129
|
+
var possibleValues =
|
|
130
|
+
// @ts-ignore
|
|
131
|
+
editorExperimentsConfig[experimentName].typeGuard.values;
|
|
132
|
+
if (possibleValues) {
|
|
133
|
+
var _iterator = _createForOfIteratorHelper(possibleValues),
|
|
134
|
+
_step;
|
|
135
|
+
try {
|
|
136
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
137
|
+
var value = _step.value;
|
|
138
|
+
eeTest(value, describeBody);
|
|
139
|
+
}
|
|
140
|
+
} catch (err) {
|
|
141
|
+
_iterator.e(err);
|
|
142
|
+
} finally {
|
|
143
|
+
_iterator.f();
|
|
144
|
+
}
|
|
145
|
+
} else {
|
|
146
|
+
// if there are no possible values, it's a boolean experiment
|
|
147
|
+
eeTest(true, describeBody);
|
|
148
|
+
eeTest(false, describeBody);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return {
|
|
152
|
+
variant: variant,
|
|
153
|
+
each: each
|
|
154
|
+
};
|
|
155
|
+
};
|
|
156
|
+
export { eeTest };
|
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
return typeof value === 'boolean';
|
|
3
|
-
}
|
|
4
|
-
function oneOf(values) {
|
|
5
|
-
return function (value) {
|
|
6
|
-
return values.includes(value);
|
|
7
|
-
};
|
|
8
|
-
}
|
|
1
|
+
import { isBoolean, oneOf } from './type-guards';
|
|
9
2
|
/**
|
|
10
3
|
* When adding a new experiment, you need to add it here.
|
|
11
4
|
* Please follow the pattern established in the examples and any
|
|
@@ -62,15 +55,6 @@ export var editorExperimentsConfig = {
|
|
|
62
55
|
typeGuard: oneOf(['control', 'test']),
|
|
63
56
|
defaultValue: 'control'
|
|
64
57
|
},
|
|
65
|
-
// Added 2024-08-23
|
|
66
|
-
'platform-editor-ai-condensed-floating-toobar': {
|
|
67
|
-
productKeys: {
|
|
68
|
-
confluence: 'platform_editor_ai_condensed_floating_toobar'
|
|
69
|
-
},
|
|
70
|
-
param: 'cohort',
|
|
71
|
-
typeGuard: oneOf(['control', 'dropdown', 'editor_ai_button']),
|
|
72
|
-
defaultValue: 'control'
|
|
73
|
-
},
|
|
74
58
|
// Added 2024-08-27
|
|
75
59
|
'dnd-input-performance-optimisation': {
|
|
76
60
|
productKeys: {
|
|
@@ -200,7 +184,6 @@ export var editorExperimentsConfig = {
|
|
|
200
184
|
typeGuard: oneOf(['control', 'test']),
|
|
201
185
|
defaultValue: 'control'
|
|
202
186
|
},
|
|
203
|
-
// Added 2024-09-26
|
|
204
187
|
platform_editor_table_use_shared_state_hook: {
|
|
205
188
|
productKeys: {
|
|
206
189
|
confluence: 'platform_editor_table_use_shared_state_hook'
|
|
@@ -218,5 +201,33 @@ export var editorExperimentsConfig = {
|
|
|
218
201
|
param: 'cohort',
|
|
219
202
|
typeGuard: oneOf(['control', 'test']),
|
|
220
203
|
defaultValue: 'control'
|
|
204
|
+
},
|
|
205
|
+
// Added 2024-10-02
|
|
206
|
+
// https://console.statsig.com/LqivKg6ADZZaGczRfBKfX/experiments/platform_editor_ai_additional_editor_prompts/setup
|
|
207
|
+
platform_editor_ai_additional_editor_prompts: {
|
|
208
|
+
productKeys: {
|
|
209
|
+
confluence: 'platform_editor_ai_additional_editor_prompts'
|
|
210
|
+
},
|
|
211
|
+
param: 'cohort',
|
|
212
|
+
typeGuard: oneOf(['control', 'test']),
|
|
213
|
+
defaultValue: 'control'
|
|
214
|
+
},
|
|
215
|
+
// Added 2024-10-01
|
|
216
|
+
comment_on_bodied_extensions: {
|
|
217
|
+
productKeys: {
|
|
218
|
+
confluence: 'platform_editor_comment_on_bodied_extensions'
|
|
219
|
+
},
|
|
220
|
+
param: 'isEnabled',
|
|
221
|
+
typeGuard: isBoolean,
|
|
222
|
+
defaultValue: false
|
|
223
|
+
},
|
|
224
|
+
// Added 2024-10-01
|
|
225
|
+
platform_editor_ai_floating_toolbar_v2: {
|
|
226
|
+
productKeys: {
|
|
227
|
+
confluence: 'platform_editor_ai_floating_toolbar_v2'
|
|
228
|
+
},
|
|
229
|
+
param: 'isEnabled',
|
|
230
|
+
typeGuard: isBoolean,
|
|
231
|
+
defaultValue: false
|
|
221
232
|
}
|
|
222
233
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function isBoolean(value) {
|
|
2
|
+
return typeof value === 'boolean';
|
|
3
|
+
}
|
|
4
|
+
export function oneOf(values) {
|
|
5
|
+
function typeGuard(value) {
|
|
6
|
+
return values.includes(value);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* This is used by test utils to get the variants when running describe.each
|
|
10
|
+
*/
|
|
11
|
+
if (IS_TESTING_ENV) {
|
|
12
|
+
typeGuard.values = values;
|
|
13
|
+
}
|
|
14
|
+
return typeGuard;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
|
|
19
|
+
var IS_TESTING_ENV = process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
/// <reference types="jest" />
|
|
1
2
|
import { type EditorExperimentOverrides } from './setup';
|
|
2
3
|
import { type EditorExperimentsConfig } from './experiments-config';
|
|
4
|
+
type DescribeBody = Parameters<typeof describe>[1];
|
|
3
5
|
/**
|
|
4
6
|
* This is a utility function for testing editor experiments.
|
|
5
7
|
*
|
|
@@ -7,11 +9,11 @@ import { type EditorExperimentsConfig } from './experiments-config';
|
|
|
7
9
|
* ```ts
|
|
8
10
|
* eeTest('example-boolean', {
|
|
9
11
|
* true: () => {
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
+
* expect(editorExperiment('example-boolean', true)).toBe(true);
|
|
13
|
+
* expect(editorExperiment('example-boolean', false)).toBe(false);
|
|
12
14
|
* },
|
|
13
15
|
* false: () => {
|
|
14
|
-
*
|
|
16
|
+
* expect(editorExperiment('example-boolean', false)).toBe(true);
|
|
15
17
|
* expect(editorExperiment('example-boolean', true)).toBe(false);
|
|
16
18
|
* },
|
|
17
19
|
* })
|
|
@@ -21,21 +23,225 @@ import { type EditorExperimentsConfig } from './experiments-config';
|
|
|
21
23
|
* ```ts
|
|
22
24
|
* eeTest('example-multivariate', {
|
|
23
25
|
* one: () => {
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(true);
|
|
27
|
+
* expect(editorExperiment('example-multivariate', 'two')).toBe(false);
|
|
26
28
|
* },
|
|
27
29
|
* two: () => {
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
+
* expect(editorExperiment('example-multivariate', 'two')).toBe(true);
|
|
31
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(false);
|
|
30
32
|
* },
|
|
31
33
|
* three: () => {
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
+
* expect(editorExperiment('example-multivariate', 'three')).toBe(true);
|
|
35
|
+
* expect(editorExperiment('example-multivariate', 'one')).toBe(false);
|
|
34
36
|
* },
|
|
35
37
|
* })
|
|
36
38
|
* ```
|
|
39
|
+
*
|
|
40
|
+
* API based on Legacy ffTest API
|
|
41
|
+
* - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Legacy-API-lEGACY
|
|
37
42
|
*/
|
|
38
|
-
|
|
39
|
-
true:
|
|
40
|
-
false:
|
|
43
|
+
declare function eeTest<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, cases: EditorExperimentsConfig[ExperimentName]['defaultValue'] extends string ? Record<EditorExperimentsConfig[ExperimentName]['defaultValue'], DescribeBody> : {
|
|
44
|
+
true: DescribeBody;
|
|
45
|
+
false: DescribeBody;
|
|
41
46
|
}, otherExperiments?: EditorExperimentOverrides): void;
|
|
47
|
+
declare namespace eeTest {
|
|
48
|
+
var describe: <ExperimentName extends "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "basic-text-transformations" | "platform_editor_ai_command_palate_improvement" | "dnd-input-performance-optimisation" | "element-level-templates" | "add-media-from-url" | "nested-dnd" | "table-nested-dnd" | "insert-menu-in-right-rail" | "platform_editor_empty_line_prompt" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_editor_ai_ai_button_block_elements" | "platform_renderer_table_sticky_scrollbar" | "nest-media-and-codeblock-in-quote" | "nested-expand-in-expand" | "platform_editor_ai_command_palette_post_ga" | "platform_editor_table_use_shared_state_hook" | "editor_ai_-_multi_prompts" | "platform_editor_ai_additional_editor_prompts" | "comment_on_bodied_extensions" | "platform_editor_ai_floating_toolbar_v2">(experimentName: ExperimentName, describeName: string) => {
|
|
49
|
+
variant: (value: {
|
|
50
|
+
'example-boolean': {
|
|
51
|
+
productKeys: {
|
|
52
|
+
confluence: string;
|
|
53
|
+
};
|
|
54
|
+
param: string;
|
|
55
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
56
|
+
defaultValue: boolean;
|
|
57
|
+
};
|
|
58
|
+
'example-multivariate': {
|
|
59
|
+
productKeys: {
|
|
60
|
+
confluence: string;
|
|
61
|
+
};
|
|
62
|
+
param: string;
|
|
63
|
+
typeGuard: (value: unknown) => value is "one" | "two" | "three";
|
|
64
|
+
defaultValue: "one" | "two" | "three";
|
|
65
|
+
};
|
|
66
|
+
'test-new-experiments-package': {
|
|
67
|
+
productKeys: {
|
|
68
|
+
confluence: string;
|
|
69
|
+
jira: string;
|
|
70
|
+
};
|
|
71
|
+
param: string;
|
|
72
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
73
|
+
defaultValue: boolean;
|
|
74
|
+
};
|
|
75
|
+
'basic-text-transformations': {
|
|
76
|
+
productKeys: {
|
|
77
|
+
confluence: string;
|
|
78
|
+
};
|
|
79
|
+
param: string;
|
|
80
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
81
|
+
defaultValue: boolean;
|
|
82
|
+
};
|
|
83
|
+
platform_editor_ai_command_palate_improvement: {
|
|
84
|
+
productKeys: {
|
|
85
|
+
confluence: string;
|
|
86
|
+
};
|
|
87
|
+
param: string;
|
|
88
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
89
|
+
defaultValue: "test" | "control";
|
|
90
|
+
};
|
|
91
|
+
'dnd-input-performance-optimisation': {
|
|
92
|
+
productKeys: {
|
|
93
|
+
confluence: string;
|
|
94
|
+
};
|
|
95
|
+
param: string;
|
|
96
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
97
|
+
defaultValue: boolean;
|
|
98
|
+
};
|
|
99
|
+
'element-level-templates': {
|
|
100
|
+
productKeys: {
|
|
101
|
+
confluence: string;
|
|
102
|
+
};
|
|
103
|
+
param: string;
|
|
104
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
105
|
+
defaultValue: boolean;
|
|
106
|
+
};
|
|
107
|
+
'add-media-from-url': {
|
|
108
|
+
productKeys: {
|
|
109
|
+
confluence: string;
|
|
110
|
+
};
|
|
111
|
+
param: string;
|
|
112
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
113
|
+
defaultValue: boolean;
|
|
114
|
+
};
|
|
115
|
+
'nested-dnd': {
|
|
116
|
+
productKeys: {
|
|
117
|
+
confluence: string;
|
|
118
|
+
};
|
|
119
|
+
param: string;
|
|
120
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
121
|
+
defaultValue: boolean;
|
|
122
|
+
};
|
|
123
|
+
'table-nested-dnd': {
|
|
124
|
+
productKeys: {
|
|
125
|
+
confluence: string;
|
|
126
|
+
};
|
|
127
|
+
param: string;
|
|
128
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
129
|
+
defaultValue: boolean;
|
|
130
|
+
};
|
|
131
|
+
'insert-menu-in-right-rail': {
|
|
132
|
+
productKeys: {
|
|
133
|
+
confluence: string;
|
|
134
|
+
};
|
|
135
|
+
param: string;
|
|
136
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
137
|
+
defaultValue: boolean;
|
|
138
|
+
};
|
|
139
|
+
platform_editor_empty_line_prompt: {
|
|
140
|
+
productKeys: {
|
|
141
|
+
confluence: string;
|
|
142
|
+
};
|
|
143
|
+
param: string;
|
|
144
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
145
|
+
defaultValue: boolean;
|
|
146
|
+
};
|
|
147
|
+
support_table_in_comment: {
|
|
148
|
+
productKeys: {
|
|
149
|
+
confluence: string;
|
|
150
|
+
};
|
|
151
|
+
param: string;
|
|
152
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
153
|
+
defaultValue: boolean;
|
|
154
|
+
};
|
|
155
|
+
platform_editor_exp_lazy_node_views: {
|
|
156
|
+
productKeys: {
|
|
157
|
+
confluence: string;
|
|
158
|
+
};
|
|
159
|
+
param: string;
|
|
160
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
161
|
+
defaultValue: boolean;
|
|
162
|
+
};
|
|
163
|
+
platform_editor_ai_ai_button_block_elements: {
|
|
164
|
+
productKeys: {
|
|
165
|
+
confluence: string;
|
|
166
|
+
};
|
|
167
|
+
param: string;
|
|
168
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
169
|
+
defaultValue: "test" | "control";
|
|
170
|
+
};
|
|
171
|
+
platform_renderer_table_sticky_scrollbar: {
|
|
172
|
+
productKeys: {
|
|
173
|
+
confluence: string;
|
|
174
|
+
};
|
|
175
|
+
param: string;
|
|
176
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
177
|
+
defaultValue: boolean;
|
|
178
|
+
};
|
|
179
|
+
'nest-media-and-codeblock-in-quote': {
|
|
180
|
+
productKeys: {
|
|
181
|
+
confluence: string;
|
|
182
|
+
};
|
|
183
|
+
param: string;
|
|
184
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
185
|
+
defaultValue: boolean;
|
|
186
|
+
};
|
|
187
|
+
'nested-expand-in-expand': {
|
|
188
|
+
productKeys: {
|
|
189
|
+
confluence: string;
|
|
190
|
+
};
|
|
191
|
+
param: string;
|
|
192
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
193
|
+
defaultValue: boolean;
|
|
194
|
+
};
|
|
195
|
+
platform_editor_ai_command_palette_post_ga: {
|
|
196
|
+
productKeys: {
|
|
197
|
+
confluence: string;
|
|
198
|
+
};
|
|
199
|
+
param: string;
|
|
200
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
201
|
+
defaultValue: "test" | "control";
|
|
202
|
+
};
|
|
203
|
+
platform_editor_table_use_shared_state_hook: {
|
|
204
|
+
productKeys: {
|
|
205
|
+
confluence: string;
|
|
206
|
+
};
|
|
207
|
+
param: string;
|
|
208
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
209
|
+
defaultValue: boolean;
|
|
210
|
+
};
|
|
211
|
+
'editor_ai_-_multi_prompts': {
|
|
212
|
+
productKeys: {
|
|
213
|
+
confluence: string;
|
|
214
|
+
};
|
|
215
|
+
param: string;
|
|
216
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
217
|
+
defaultValue: "test" | "control";
|
|
218
|
+
};
|
|
219
|
+
platform_editor_ai_additional_editor_prompts: {
|
|
220
|
+
productKeys: {
|
|
221
|
+
confluence: string;
|
|
222
|
+
};
|
|
223
|
+
param: string;
|
|
224
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
225
|
+
defaultValue: "test" | "control";
|
|
226
|
+
};
|
|
227
|
+
comment_on_bodied_extensions: {
|
|
228
|
+
productKeys: {
|
|
229
|
+
confluence: string;
|
|
230
|
+
};
|
|
231
|
+
param: string;
|
|
232
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
233
|
+
defaultValue: boolean;
|
|
234
|
+
};
|
|
235
|
+
platform_editor_ai_floating_toolbar_v2: {
|
|
236
|
+
productKeys: {
|
|
237
|
+
confluence: string;
|
|
238
|
+
};
|
|
239
|
+
param: string;
|
|
240
|
+
typeGuard: typeof import("./type-guards").isBoolean;
|
|
241
|
+
defaultValue: boolean;
|
|
242
|
+
};
|
|
243
|
+
}[ExperimentName]["defaultValue"], describeBody: jest.EmptyFunction) => void;
|
|
244
|
+
each: (describeBody: jest.EmptyFunction) => void;
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
export { eeTest };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { isBoolean } from './type-guards';
|
|
2
2
|
export type EditorExperimentsConfig = typeof editorExperimentsConfig;
|
|
3
3
|
/**
|
|
4
4
|
* When adding a new experiment, you need to add it here.
|
|
@@ -44,16 +44,8 @@ export declare const editorExperimentsConfig: {
|
|
|
44
44
|
confluence: string;
|
|
45
45
|
};
|
|
46
46
|
param: string;
|
|
47
|
-
typeGuard: (value: unknown) => value is "
|
|
48
|
-
defaultValue: "
|
|
49
|
-
};
|
|
50
|
-
'platform-editor-ai-condensed-floating-toobar': {
|
|
51
|
-
productKeys: {
|
|
52
|
-
confluence: string;
|
|
53
|
-
};
|
|
54
|
-
param: string;
|
|
55
|
-
typeGuard: (value: unknown) => value is "control" | "dropdown" | "editor_ai_button";
|
|
56
|
-
defaultValue: "control" | "dropdown" | "editor_ai_button";
|
|
47
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
48
|
+
defaultValue: "test" | "control";
|
|
57
49
|
};
|
|
58
50
|
'dnd-input-performance-optimisation': {
|
|
59
51
|
productKeys: {
|
|
@@ -132,8 +124,8 @@ export declare const editorExperimentsConfig: {
|
|
|
132
124
|
confluence: string;
|
|
133
125
|
};
|
|
134
126
|
param: string;
|
|
135
|
-
typeGuard: (value: unknown) => value is "
|
|
136
|
-
defaultValue: "
|
|
127
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
128
|
+
defaultValue: "test" | "control";
|
|
137
129
|
};
|
|
138
130
|
platform_renderer_table_sticky_scrollbar: {
|
|
139
131
|
productKeys: {
|
|
@@ -164,8 +156,8 @@ export declare const editorExperimentsConfig: {
|
|
|
164
156
|
confluence: string;
|
|
165
157
|
};
|
|
166
158
|
param: string;
|
|
167
|
-
typeGuard: (value: unknown) => value is "
|
|
168
|
-
defaultValue: "
|
|
159
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
160
|
+
defaultValue: "test" | "control";
|
|
169
161
|
};
|
|
170
162
|
platform_editor_table_use_shared_state_hook: {
|
|
171
163
|
productKeys: {
|
|
@@ -180,8 +172,31 @@ export declare const editorExperimentsConfig: {
|
|
|
180
172
|
confluence: string;
|
|
181
173
|
};
|
|
182
174
|
param: string;
|
|
183
|
-
typeGuard: (value: unknown) => value is "
|
|
184
|
-
defaultValue: "
|
|
175
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
176
|
+
defaultValue: "test" | "control";
|
|
177
|
+
};
|
|
178
|
+
platform_editor_ai_additional_editor_prompts: {
|
|
179
|
+
productKeys: {
|
|
180
|
+
confluence: string;
|
|
181
|
+
};
|
|
182
|
+
param: string;
|
|
183
|
+
typeGuard: (value: unknown) => value is "test" | "control";
|
|
184
|
+
defaultValue: "test" | "control";
|
|
185
|
+
};
|
|
186
|
+
comment_on_bodied_extensions: {
|
|
187
|
+
productKeys: {
|
|
188
|
+
confluence: string;
|
|
189
|
+
};
|
|
190
|
+
param: string;
|
|
191
|
+
typeGuard: typeof isBoolean;
|
|
192
|
+
defaultValue: boolean;
|
|
193
|
+
};
|
|
194
|
+
platform_editor_ai_floating_toolbar_v2: {
|
|
195
|
+
productKeys: {
|
|
196
|
+
confluence: string;
|
|
197
|
+
};
|
|
198
|
+
param: string;
|
|
199
|
+
typeGuard: typeof isBoolean;
|
|
200
|
+
defaultValue: boolean;
|
|
185
201
|
};
|
|
186
202
|
};
|
|
187
|
-
export {};
|
package/dist/types/setup.d.ts
CHANGED
|
@@ -7,8 +7,7 @@ export declare let _overrides: Partial<{
|
|
|
7
7
|
'example-multivariate': "one" | "two" | "three";
|
|
8
8
|
'test-new-experiments-package': boolean;
|
|
9
9
|
'basic-text-transformations': boolean;
|
|
10
|
-
platform_editor_ai_command_palate_improvement: "
|
|
11
|
-
'platform-editor-ai-condensed-floating-toobar': "control" | "dropdown" | "editor_ai_button";
|
|
10
|
+
platform_editor_ai_command_palate_improvement: "test" | "control";
|
|
12
11
|
'dnd-input-performance-optimisation': boolean;
|
|
13
12
|
'element-level-templates': boolean;
|
|
14
13
|
'add-media-from-url': boolean;
|
|
@@ -18,13 +17,16 @@ export declare let _overrides: Partial<{
|
|
|
18
17
|
platform_editor_empty_line_prompt: boolean;
|
|
19
18
|
support_table_in_comment: boolean;
|
|
20
19
|
platform_editor_exp_lazy_node_views: boolean;
|
|
21
|
-
platform_editor_ai_ai_button_block_elements: "
|
|
20
|
+
platform_editor_ai_ai_button_block_elements: "test" | "control";
|
|
22
21
|
platform_renderer_table_sticky_scrollbar: boolean;
|
|
23
22
|
'nest-media-and-codeblock-in-quote': boolean;
|
|
24
23
|
'nested-expand-in-expand': boolean;
|
|
25
|
-
platform_editor_ai_command_palette_post_ga: "
|
|
24
|
+
platform_editor_ai_command_palette_post_ga: "test" | "control";
|
|
26
25
|
platform_editor_table_use_shared_state_hook: boolean;
|
|
27
|
-
'editor_ai_-_multi_prompts': "
|
|
26
|
+
'editor_ai_-_multi_prompts': "test" | "control";
|
|
27
|
+
platform_editor_ai_additional_editor_prompts: "test" | "control";
|
|
28
|
+
comment_on_bodied_extensions: boolean;
|
|
29
|
+
platform_editor_ai_floating_toolbar_v2: boolean;
|
|
28
30
|
}>;
|
|
29
31
|
export declare let _product: 'confluence' | 'jira' | 'test' | undefined;
|
|
30
32
|
/**
|