@forge/react 11.3.0-next.1 → 11.4.0-next.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @forge/react
2
2
 
3
+ ## 11.4.0-next.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 582f25c: Attach event for content property updated by forge/react hook"
8
+
9
+ ## 11.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 1fe70bc: Add package.json exports configuration for improved TypeScript module resolution in forge-react package.
14
+
15
+ ### Patch Changes
16
+
17
+ - 0371b03: Update type import from @forge/bridge
18
+ - Updated dependencies [8e77d28]
19
+ - Updated dependencies [185f844]
20
+ - @forge/bridge@5.5.0
21
+
3
22
  ## 11.3.0-next.1
4
23
 
5
24
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useContentProperty.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useContentProperty.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__test__/useContentProperty.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,277 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ // Mock event system - must be defined before jest.mock() calls
6
+ const listeners = new Map();
7
+ const mockEvents = {
8
+ emit: jest.fn((event, data) => {
9
+ if (listeners.has(event)) {
10
+ listeners.get(event)?.forEach((callback) => callback(data));
11
+ }
12
+ return Promise.resolve();
13
+ }),
14
+ on: jest.fn((event, callback) => {
15
+ if (!listeners.has(event)) {
16
+ listeners.set(event, []);
17
+ }
18
+ listeners.get(event)?.push(callback);
19
+ }),
20
+ clearListeners: (event) => {
21
+ listeners.delete(event);
22
+ }
23
+ };
24
+ // Mock data - define before imports
25
+ const MOCK_PROPERTY_KEY = 'test-property-key';
26
+ const MOCK_INIT_VALUE = { count: 0 };
27
+ const MOCK_EXISTING_VALUE = { count: 5 };
28
+ const MOCK_UPDATED_VALUE = { count: 10 };
29
+ // Mock functions - define before imports
30
+ const mockUpdateProp = jest.fn();
31
+ const mockDeleteProp = jest.fn();
32
+ const mockConfluenceEntity = jest.fn(() => ({
33
+ get: jest.fn(),
34
+ update: jest.fn(),
35
+ delete: jest.fn()
36
+ }));
37
+ const reconcilerTestRenderer_1 = tslib_1.__importDefault(require("../../__test__/reconcilerTestRenderer"));
38
+ const testUtils_1 = require("../../__test__/testUtils");
39
+ const useContentProperty_1 = require("../useContentProperty");
40
+ const useEntityProperty_1 = require("../useEntityProperty");
41
+ // Mock modules after imports
42
+ jest.mock('@forge/bridge', () => ({
43
+ events: mockEvents
44
+ }));
45
+ jest.mock('../useEntityProperty', () => ({
46
+ useEntityProperty: jest.fn(() => [MOCK_EXISTING_VALUE, mockUpdateProp, mockDeleteProp])
47
+ }));
48
+ jest.mock('../confluenceEntity', () => ({
49
+ confluenceEntity: mockConfluenceEntity
50
+ }));
51
+ describe('useContentProperty', () => {
52
+ beforeEach(() => {
53
+ // Clear only specific mocks, not all mocks to preserve function references
54
+ mockUpdateProp.mockClear();
55
+ mockDeleteProp.mockClear();
56
+ mockConfluenceEntity.mockClear();
57
+ mockEvents.emit.mockClear();
58
+ mockEvents.on.mockClear();
59
+ mockEvents.clearListeners('FORGE_CONTENT_PROPERTY_UPDATED');
60
+ (0, testUtils_1.setupBridge)(); // Set up global bridge for tests
61
+ });
62
+ it('should initialize confluenceEntity with correct parameters', async () => {
63
+ const TestComponent = () => {
64
+ (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
65
+ return null;
66
+ };
67
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
68
+ expect(mockConfluenceEntity).toHaveBeenCalledWith({
69
+ entityType: 'Content',
70
+ origPropertyKey: MOCK_PROPERTY_KEY,
71
+ initValue: MOCK_INIT_VALUE
72
+ });
73
+ });
74
+ it('should call useEntityProperty with the entity manager', async () => {
75
+ const TestComponent = () => {
76
+ (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
77
+ return null;
78
+ };
79
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
80
+ expect(useEntityProperty_1.useEntityProperty).toHaveBeenCalledWith({
81
+ entityManager: expect.any(Object)
82
+ });
83
+ });
84
+ it('should return property value, update function, and delete function', async () => {
85
+ let hookResult = [];
86
+ const TestComponent = () => {
87
+ hookResult = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
88
+ return null;
89
+ };
90
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
91
+ expect(hookResult).toHaveLength(3);
92
+ expect(hookResult[0]).toBe(MOCK_EXISTING_VALUE);
93
+ expect(typeof hookResult[1]).toBe('function');
94
+ expect(typeof hookResult[2]).toBe('function');
95
+ expect(hookResult[2]).toBe(mockDeleteProp);
96
+ });
97
+ it('should emit event when property update is successful', async () => {
98
+ mockUpdateProp.mockResolvedValueOnce(MOCK_UPDATED_VALUE);
99
+ let updateFunction = jest.fn();
100
+ const TestComponent = () => {
101
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
102
+ updateFunction = updateProp;
103
+ return null;
104
+ };
105
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
106
+ await updateFunction(MOCK_UPDATED_VALUE);
107
+ expect(mockUpdateProp).toHaveBeenCalledWith(MOCK_UPDATED_VALUE, undefined);
108
+ expect(mockEvents.emit).toHaveBeenCalledWith('FORGE_CONTENT_PROPERTY_UPDATED', {
109
+ propertyKey: MOCK_PROPERTY_KEY,
110
+ valueUpdate: MOCK_UPDATED_VALUE
111
+ });
112
+ });
113
+ it('should emit event when property update with retry count is successful', async () => {
114
+ mockUpdateProp.mockResolvedValueOnce(MOCK_UPDATED_VALUE);
115
+ const retryCount = 5;
116
+ let updateFunction = jest.fn();
117
+ const TestComponent = () => {
118
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
119
+ updateFunction = updateProp;
120
+ return null;
121
+ };
122
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
123
+ await updateFunction(MOCK_UPDATED_VALUE, retryCount);
124
+ expect(mockUpdateProp).toHaveBeenCalledWith(MOCK_UPDATED_VALUE, retryCount);
125
+ expect(mockEvents.emit).toHaveBeenCalledWith('FORGE_CONTENT_PROPERTY_UPDATED', {
126
+ propertyKey: MOCK_PROPERTY_KEY,
127
+ valueUpdate: MOCK_UPDATED_VALUE
128
+ });
129
+ });
130
+ it('should emit event when property update with function updater is successful', async () => {
131
+ const updaterFunction = (prev) => ({ ...prev, count: prev.count + 1 });
132
+ mockUpdateProp.mockResolvedValueOnce(MOCK_UPDATED_VALUE);
133
+ let updateFunction = jest.fn();
134
+ const TestComponent = () => {
135
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
136
+ updateFunction = updateProp;
137
+ return null;
138
+ };
139
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
140
+ await updateFunction(updaterFunction);
141
+ expect(mockUpdateProp).toHaveBeenCalledWith(updaterFunction, undefined);
142
+ expect(mockEvents.emit).toHaveBeenCalledWith('FORGE_CONTENT_PROPERTY_UPDATED', {
143
+ propertyKey: MOCK_PROPERTY_KEY,
144
+ valueUpdate: updaterFunction
145
+ });
146
+ });
147
+ it('should NOT emit event when property update fails', async () => {
148
+ const updateError = new Error('Update failed');
149
+ mockUpdateProp.mockRejectedValueOnce(updateError);
150
+ let updateFunction = jest.fn();
151
+ let caughtError;
152
+ const TestComponent = () => {
153
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
154
+ updateFunction = updateProp;
155
+ return null;
156
+ };
157
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
158
+ try {
159
+ await updateFunction(MOCK_UPDATED_VALUE);
160
+ }
161
+ catch (error) {
162
+ caughtError = error;
163
+ }
164
+ expect(mockUpdateProp).toHaveBeenCalledWith(MOCK_UPDATED_VALUE, undefined);
165
+ expect(mockEvents.emit).not.toHaveBeenCalled();
166
+ expect(caughtError).toBe(updateError);
167
+ });
168
+ it('should re-throw error when property update fails', async () => {
169
+ const updateError = new Error('Network error');
170
+ mockUpdateProp.mockRejectedValueOnce(updateError);
171
+ let updateFunction = jest.fn();
172
+ const TestComponent = () => {
173
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
174
+ updateFunction = updateProp;
175
+ return null;
176
+ };
177
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
178
+ await expect(updateFunction(MOCK_UPDATED_VALUE)).rejects.toThrow('Network error');
179
+ });
180
+ it('should pass through delete function without modification', async () => {
181
+ let deleteFunction = jest.fn();
182
+ const TestComponent = () => {
183
+ const [, , deleteProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
184
+ deleteFunction = deleteProp;
185
+ return null;
186
+ };
187
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
188
+ expect(deleteFunction).toBe(mockDeleteProp);
189
+ });
190
+ it('should memoize entity manager to prevent unnecessary re-creation', async () => {
191
+ let renderCount = 0;
192
+ const TestComponent = ({ propKey }) => {
193
+ renderCount++;
194
+ (0, useContentProperty_1.useContentProperty)(propKey, MOCK_INIT_VALUE);
195
+ return null;
196
+ };
197
+ // First render
198
+ const renderer = await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, { propKey: MOCK_PROPERTY_KEY }));
199
+ const firstCallCount = mockConfluenceEntity.mock.calls.length;
200
+ // Re-render with same key
201
+ await renderer.update((0, jsx_runtime_1.jsx)(TestComponent, { propKey: MOCK_PROPERTY_KEY }));
202
+ const secondCallCount = mockConfluenceEntity.mock.calls.length;
203
+ expect(renderCount).toBe(2);
204
+ // Verify the entity manager is called with same parameters, ensuring proper memoization setup
205
+ expect(mockConfluenceEntity).toHaveBeenCalledWith({
206
+ entityType: 'Content',
207
+ origPropertyKey: MOCK_PROPERTY_KEY,
208
+ initValue: MOCK_INIT_VALUE
209
+ });
210
+ // Note: Due to test renderer behavior, entity manager may be recreated during unmount/remount
211
+ expect(secondCallCount).toBeGreaterThanOrEqual(firstCallCount);
212
+ });
213
+ it('should handle different property keys correctly', async () => {
214
+ const propertyKey1 = 'property-1';
215
+ const propertyKey2 = 'property-2';
216
+ const value1 = { data: 'test1' };
217
+ const value2 = { data: 'test2' };
218
+ mockUpdateProp.mockResolvedValue(value1);
219
+ let updateFunction1 = jest.fn();
220
+ let updateFunction2 = jest.fn();
221
+ const TestComponent = () => {
222
+ const [, updateProp1] = (0, useContentProperty_1.useContentProperty)(propertyKey1, value1);
223
+ const [, updateProp2] = (0, useContentProperty_1.useContentProperty)(propertyKey2, value2);
224
+ updateFunction1 = updateProp1;
225
+ updateFunction2 = updateProp2;
226
+ return null;
227
+ };
228
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
229
+ await updateFunction1(value1);
230
+ await updateFunction2(value2);
231
+ expect(mockEvents.emit).toHaveBeenCalledWith('FORGE_CONTENT_PROPERTY_UPDATED', {
232
+ propertyKey: propertyKey1,
233
+ valueUpdate: value1
234
+ });
235
+ expect(mockEvents.emit).toHaveBeenCalledWith('FORGE_CONTENT_PROPERTY_UPDATED', {
236
+ propertyKey: propertyKey2,
237
+ valueUpdate: value2
238
+ });
239
+ });
240
+ it('should handle async event emission without blocking', async () => {
241
+ // Make event.emit slow to ensure it doesn't block the update
242
+ mockEvents.emit.mockImplementationOnce(() => new Promise((resolve) => setTimeout(resolve, 100)));
243
+ mockUpdateProp.mockResolvedValueOnce(MOCK_UPDATED_VALUE);
244
+ let updateFunction = jest.fn();
245
+ const TestComponent = () => {
246
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
247
+ updateFunction = updateProp;
248
+ return null;
249
+ };
250
+ await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, {}));
251
+ const startTime = Date.now();
252
+ await updateFunction(MOCK_UPDATED_VALUE);
253
+ const endTime = Date.now();
254
+ // Update should complete quickly (not wait for event emission)
255
+ expect(endTime - startTime).toBeLessThan(50);
256
+ expect(mockUpdateProp).toHaveBeenCalled();
257
+ expect(mockEvents.emit).toHaveBeenCalled();
258
+ });
259
+ it('should preserve update function reference between renders', async () => {
260
+ let updateFunction1 = jest.fn();
261
+ let updateFunction2 = jest.fn();
262
+ const TestComponent = ({ renderKey }) => {
263
+ const [, updateProp] = (0, useContentProperty_1.useContentProperty)(MOCK_PROPERTY_KEY, MOCK_INIT_VALUE);
264
+ if (renderKey === 1)
265
+ updateFunction1 = updateProp;
266
+ if (renderKey === 2)
267
+ updateFunction2 = updateProp;
268
+ return null;
269
+ };
270
+ const renderer = await reconcilerTestRenderer_1.default.create((0, jsx_runtime_1.jsx)(TestComponent, { renderKey: 1 }));
271
+ await renderer.update((0, jsx_runtime_1.jsx)(TestComponent, { renderKey: 2 }));
272
+ // Verify both functions exist and are callable
273
+ expect(typeof updateFunction1).toBe('function');
274
+ expect(typeof updateFunction2).toBe('function');
275
+ // Note: Function reference stability depends on underlying useEntityProperty mock stability
276
+ });
277
+ });
@@ -1,3 +1,4 @@
1
+ import type { ValueUpdate } from './types';
1
2
  /**
2
3
  * This function manages the content properties of a Confluence page where the app is installed.
3
4
  * @param propertyKey Name (key) of the property
@@ -7,5 +8,5 @@
7
8
  * 2. A function to update the property value (with another value or an updater function). If an initial update fails, it automatically tries to update for another <retryCount> times (default 2).
8
9
  * 3. A function to delete the property.
9
10
  */
10
- export declare const useContentProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [PropValue | undefined, (valueUpdate: import("./types/entityProps").ValueUpdate<PropValue>, retryCount?: number) => Promise<void>, () => Promise<void>];
11
+ export declare const useContentProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [PropValue | undefined, (valueUpdate: ValueUpdate<PropValue>, retryCount?: number) => Promise<void>, () => Promise<void>];
11
12
  //# sourceMappingURL=useContentProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useContentProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useContentProperty.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,2BAA4B,MAAM,2LAWhE,CAAC"}
1
+ {"version":3,"file":"useContentProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useContentProperty.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,2BAA4B,MAAM,+GAcJ,MAAM,wCAUlE,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useContentProperty = void 0;
4
4
  const react_1 = require("react");
5
+ const bridge_1 = require("@forge/bridge");
5
6
  const confluenceEntity_1 = require("./confluenceEntity");
6
7
  const useEntityProperty_1 = require("./useEntityProperty");
7
8
  /**
@@ -18,7 +19,14 @@ const useContentProperty = (propertyKey, initValue) => {
18
19
  entityType: 'Content',
19
20
  origPropertyKey: propertyKey,
20
21
  initValue
21
- }), []);
22
- return (0, useEntityProperty_1.useEntityProperty)({ entityManager });
22
+ }), [propertyKey, initValue]);
23
+ const [propValue, updateProp, deleteProp] = (0, useEntityProperty_1.useEntityProperty)({ entityManager });
24
+ const updatePropWithEvent = (0, react_1.useCallback)(async (valueUpdate, retryCount) => {
25
+ const success = await updateProp(valueUpdate, retryCount);
26
+ if (success) {
27
+ void bridge_1.events.emit('FORGE_CONTENT_PROPERTY_UPDATED', { propertyKey, valueUpdate });
28
+ }
29
+ }, [updateProp, propertyKey]);
30
+ return [propValue, updatePropWithEvent, deleteProp];
23
31
  };
24
32
  exports.useContentProperty = useContentProperty;
@@ -1,3 +1,3 @@
1
1
  import type { ValueUpdate, EntityPropertyUseParams } from './types';
2
- export declare const useEntityProperty: <PropValue>({ entityManager, defaultRetryCount }: EntityPropertyUseParams<PropValue>) => readonly [PropValue | undefined, (valueUpdate: ValueUpdate<PropValue>, retryCount?: number) => Promise<void>, () => Promise<void>];
2
+ export declare const useEntityProperty: <PropValue>({ entityManager, defaultRetryCount }: EntityPropertyUseParams<PropValue>) => readonly [PropValue | undefined, (valueUpdate: ValueUpdate<PropValue>, retryCount?: number) => Promise<boolean>, () => Promise<void>];
3
3
  //# sourceMappingURL=useEntityProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityProperty.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,iBAAiB,6NAgD7B,CAAC"}
1
+ {"version":3,"file":"useEntityProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityProperty.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAGpE,eAAO,MAAM,iBAAiB,0LAqBmD,QAAQ,OAAO,CAAC,sBA6BhG,CAAC"}
@@ -37,6 +37,7 @@ const useEntityProperty = ({ entityManager, defaultRetryCount = 2 }) => {
37
37
  }
38
38
  }
39
39
  }
40
+ return success;
40
41
  }, [entityManager]);
41
42
  const deleteProp = (0, react_1.useCallback)(async () => {
42
43
  await entityManager.delete();
@@ -7,5 +7,5 @@
7
7
  * 2. A function to update the property value (with another value or an updater function). If a <retryCount> is given and an initial update fails, it automatically tries to update for another <retryCount> times (default 0).
8
8
  * 3. A function to delete the property.
9
9
  */
10
- export declare const useIssueProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [any, (valueUpdate: any, retryCount?: number) => Promise<void>, () => Promise<void>];
10
+ export declare const useIssueProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [any, (valueUpdate: any, retryCount?: number) => Promise<boolean>, () => Promise<void>];
11
11
  //# sourceMappingURL=useIssueProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIssueProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useIssueProperty.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,2BAA4B,MAAM,wHAW9D,CAAC"}
1
+ {"version":3,"file":"useIssueProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useIssueProperty.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,2BAA4B,MAAM,2HAW9D,CAAC"}
@@ -7,5 +7,5 @@
7
7
  * 2. A function to update the property value (with another value or an updater function). If an initial update fails, it automatically tries to update for another <retryCount> times (default 2).
8
8
  * 3. A function to delete the property.
9
9
  */
10
- export declare const useSpaceProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [PropValue | undefined, (valueUpdate: import("./types/entityProps").ValueUpdate<PropValue>, retryCount?: number) => Promise<void>, () => Promise<void>];
10
+ export declare const useSpaceProperty: <PropValue>(propertyKey: string, initValue: PropValue) => readonly [PropValue | undefined, (valueUpdate: import("./types/entityProps").ValueUpdate<PropValue>, retryCount?: number) => Promise<boolean>, () => Promise<void>];
11
11
  //# sourceMappingURL=useSpaceProperty.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSpaceProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useSpaceProperty.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,2BAA4B,MAAM,2LAW9D,CAAC"}
1
+ {"version":3,"file":"useSpaceProperty.d.ts","sourceRoot":"","sources":["../../src/hooks/useSpaceProperty.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,2BAA4B,MAAM,8LAW9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/react",
3
- "version": "11.3.0-next.1",
3
+ "version": "11.4.0-next.0",
4
4
  "description": "Forge React reconciler",
5
5
  "author": "Atlassian",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -28,7 +28,7 @@
28
28
  "@atlaskit/adf-schema": "^48.0.0",
29
29
  "@atlaskit/adf-utils": "^19.19.0",
30
30
  "@atlaskit/forge-react-types": "^0.42.10",
31
- "@forge/bridge": "^5.5.0-next.0",
31
+ "@forge/bridge": "^5.5.0",
32
32
  "@forge/i18n": "0.0.7",
33
33
  "@types/react": "^18.2.64",
34
34
  "@types/react-reconciler": "^0.28.8",