@pingux/astro 2.221.1 → 2.221.2-alpha.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.
@@ -36,7 +36,7 @@ function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c
36
36
  function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof _Symbol ? _Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = _Object$create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: _bindInstanceProperty(d).call(d, e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = _Object$getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(c); function f(e) { return _Object$setPrototypeOf ? _Object$setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = _Object$create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
37
37
  function _regeneratorDefine2(e, r, n, t) { var i = _Object$defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
38
38
  function _OverloadYield(e, d) { this.v = e, this.k = d; } // Emotion Cache added as test fails otherwise, root cause of this failure is unknown.
39
- // Failure occured with ThemeUI refactor.
39
+ // Failure occurred with ThemeUI refactor.
40
40
  // https://github.com/emotion-js/emotion/issues/1105#issuecomment-557726922
41
41
  var emotionCache = (0, _cache["default"])({
42
42
  key: 'stepper-test'
@@ -0,0 +1,322 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ var _fromEntries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/from-entries"));
13
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
+ var _entries = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/entries"));
15
+ var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
18
+ var _stableRelease = require("../../../../stableRelease");
19
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
20
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; } // This test exercises the repository-root release script from the Astro package.
21
+ /* eslint-disable @nx/enforce-module-boundaries, import/no-relative-packages */
22
+ /* eslint-enable @nx/enforce-module-boundaries, import/no-relative-packages */
23
+
24
+ var mockReleaseChangelog = jest.fn();
25
+ var mockReleasePublish = jest.fn();
26
+ var mockReleaseVersion = jest.fn();
27
+ var mockCreateProjectGraphAsync = jest.fn();
28
+ var mockWriteFileSync = jest.fn();
29
+ var mockYargsParseAsync = jest.fn().mockResolvedValue({
30
+ dryRun: true,
31
+ verbose: false
32
+ });
33
+ jest.mock('nx/release', function () {
34
+ return {
35
+ releaseChangelog: mockReleaseChangelog,
36
+ releasePublish: mockReleasePublish,
37
+ releaseVersion: mockReleaseVersion
38
+ };
39
+ });
40
+ jest.mock('nx/src/project-graph/project-graph', function () {
41
+ return {
42
+ createProjectGraphAsync: mockCreateProjectGraphAsync
43
+ };
44
+ });
45
+ jest.mock('node:fs', function () {
46
+ return _objectSpread(_objectSpread({}, jest.requireActual('node:fs')), {}, {
47
+ writeFileSync: mockWriteFileSync
48
+ });
49
+ });
50
+ jest.mock('yargs', function () {
51
+ return {
52
+ option: jest.fn().mockReturnThis(),
53
+ parseAsync: mockYargsParseAsync,
54
+ version: jest.fn().mockReturnThis()
55
+ };
56
+ });
57
+ var packageData = function packageData(manifests) {
58
+ var _context;
59
+ return (0, _fromEntries["default"])((0, _map["default"])(_context = (0, _entries["default"])(manifests)).call(_context, function (_ref) {
60
+ var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
61
+ projectName = _ref2[0],
62
+ manifest = _ref2[1];
63
+ return [projectName, {
64
+ manifest: manifest
65
+ }];
66
+ }));
67
+ };
68
+ describe('calculatePlannedVersions', function () {
69
+ test('prefers an existing new version, including an alpha promotion value', function () {
70
+ var projectsVersionData = {
71
+ astro: {
72
+ currentVersion: '4.2.0-alpha.1',
73
+ newVersion: '4.2.0'
74
+ },
75
+ wrapper: {
76
+ currentVersion: '2.1.3',
77
+ newVersion: '2.1.4'
78
+ }
79
+ };
80
+ expect((0, _stableRelease.calculatePlannedVersions)(['astro', 'wrapper'], projectsVersionData, packageData({
81
+ astro: {
82
+ version: '99.0.0'
83
+ },
84
+ wrapper: {
85
+ version: '99.0.0'
86
+ }
87
+ }))).toEqual({
88
+ astro: '4.2.0',
89
+ wrapper: '2.1.4'
90
+ });
91
+ });
92
+ test('increments the current version and then falls back to the manifest version', function () {
93
+ expect((0, _stableRelease.calculatePlannedVersions)(['current', 'manifest'], {
94
+ current: {
95
+ currentVersion: '1.2.3'
96
+ },
97
+ manifest: {}
98
+ }, packageData({
99
+ current: {
100
+ version: '9.9.9'
101
+ },
102
+ manifest: {
103
+ version: '2.4.0'
104
+ }
105
+ }))).toEqual({
106
+ current: '1.2.4',
107
+ manifest: '2.4.1'
108
+ });
109
+ });
110
+ test('throws the exact error for missing or invalid version data without mutating inputs', function () {
111
+ var projectsVersionData = {
112
+ missing: {
113
+ currentVersion: null,
114
+ newVersion: null
115
+ },
116
+ invalid: {
117
+ currentVersion: 'not-a-version'
118
+ }
119
+ };
120
+ var manifests = packageData({
121
+ missing: {},
122
+ invalid: {
123
+ version: 'also-invalid'
124
+ }
125
+ });
126
+ var projectsVersionDataBefore = JSON.parse((0, _stringify["default"])(projectsVersionData));
127
+ var manifestsBefore = JSON.parse((0, _stringify["default"])(manifests));
128
+ expect(function () {
129
+ return (0, _stableRelease.calculatePlannedVersions)(['missing'], projectsVersionData, manifests);
130
+ }).toThrow('Unable to calculate a stable version for missing.');
131
+ expect(function () {
132
+ return (0, _stableRelease.calculatePlannedVersions)(['invalid'], projectsVersionData, manifests);
133
+ }).toThrow('Unable to calculate a stable version for invalid.');
134
+ expect(projectsVersionData).toEqual(projectsVersionDataBefore);
135
+ expect(manifests).toEqual(manifestsBefore);
136
+ });
137
+ });
138
+ describe('updateDependencyRange', function () {
139
+ test.each([['^1.2.3', '1.2.4', '^1.2.4'], ['~1.2.3', '1.2.4', '~1.2.4'], ['=1.2.3', '1.2.4', '=1.2.4'], ['1.2.3', '1.2.4', '1.2.4'], ['workspace:^1.2.3', '1.2.4', 'workspace:^1.2.4'], ['workspace:~1.2.3', '1.2.4', 'workspace:~1.2.4'], ['workspace:*', '1.2.4', 'workspace:1.2.4'], ['file:../pkg', '1.2.4', 'file:../pkg'], ['link:../pkg', '1.2.4', 'link:../pkg']])('transforms %s to %s', function (range, version, expected) {
140
+ expect((0, _stableRelease.updateDependencyRange)(range, version)).toBe(expected);
141
+ });
142
+ });
143
+ describe('updateDependencyRanges', function () {
144
+ test('updates the target in every supported dependency field and reports each change', function () {
145
+ var manifest = {
146
+ name: '@pingux/source',
147
+ dependencies: {
148
+ '@pingux/target': '^1.2.3',
149
+ unrelated: '~4.0.0'
150
+ },
151
+ devDependencies: {
152
+ '@pingux/target': 'workspace:^1.2.3'
153
+ },
154
+ optionalDependencies: {
155
+ '@pingux/target': 'workspace:*'
156
+ }
157
+ };
158
+ var dependenciesBefore = manifest.dependencies;
159
+ var devDependenciesBefore = manifest.devDependencies;
160
+ var optionalDependenciesBefore = manifest.optionalDependencies;
161
+ var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
162
+ expect(result.manifest).toEqual(_objectSpread(_objectSpread({}, manifest), {}, {
163
+ dependencies: {
164
+ '@pingux/target': '^1.2.4',
165
+ unrelated: '~4.0.0'
166
+ },
167
+ devDependencies: {
168
+ '@pingux/target': 'workspace:^1.2.4'
169
+ },
170
+ optionalDependencies: {
171
+ '@pingux/target': 'workspace:1.2.4'
172
+ }
173
+ }));
174
+ expect(result.changes).toEqual([{
175
+ field: 'dependencies',
176
+ name: '@pingux/target',
177
+ currentRange: '^1.2.3',
178
+ nextRange: '^1.2.4'
179
+ }, {
180
+ field: 'devDependencies',
181
+ name: '@pingux/target',
182
+ currentRange: 'workspace:^1.2.3',
183
+ nextRange: 'workspace:^1.2.4'
184
+ }, {
185
+ field: 'optionalDependencies',
186
+ name: '@pingux/target',
187
+ currentRange: 'workspace:*',
188
+ nextRange: 'workspace:1.2.4'
189
+ }]);
190
+ expect(manifest.dependencies).toBe(dependenciesBefore);
191
+ expect(manifest.devDependencies).toBe(devDependenciesBefore);
192
+ expect(manifest.optionalDependencies).toBe(optionalDependenciesBefore);
193
+ expect(manifest).toEqual({
194
+ name: '@pingux/source',
195
+ dependencies: {
196
+ '@pingux/target': '^1.2.3',
197
+ unrelated: '~4.0.0'
198
+ },
199
+ devDependencies: {
200
+ '@pingux/target': 'workspace:^1.2.3'
201
+ },
202
+ optionalDependencies: {
203
+ '@pingux/target': 'workspace:*'
204
+ }
205
+ });
206
+ });
207
+ test('leaves unrelated, absent, equal, and local-protocol entries unchanged', function () {
208
+ var manifest = {
209
+ name: '@pingux/source',
210
+ dependencies: {
211
+ '@pingux/target': 'file:../target',
212
+ unrelated: '^4.0.0'
213
+ },
214
+ devDependencies: {
215
+ '@pingux/target': 'link:../target'
216
+ },
217
+ optionalDependencies: {
218
+ '@pingux/target': '^1.2.4'
219
+ }
220
+ };
221
+ var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
222
+ expect(result.changes).toEqual([]);
223
+ expect(result.manifest).toEqual(manifest);
224
+ expect(result.manifest).not.toBe(manifest);
225
+ expect(result.manifest.dependencies).toBe(manifest.dependencies);
226
+ expect(result.manifest.devDependencies).toBe(manifest.devDependencies);
227
+ expect(result.manifest.optionalDependencies).toBe(manifest.optionalDependencies);
228
+ });
229
+ test.each([['dependencies', {
230
+ name: '@pingux/source',
231
+ devDependencies: {
232
+ '@pingux/target': '^1.2.3'
233
+ },
234
+ optionalDependencies: {
235
+ unrelated: '~4.0.0'
236
+ }
237
+ }, {
238
+ name: '@pingux/source',
239
+ devDependencies: {
240
+ '@pingux/target': '^1.2.4'
241
+ },
242
+ optionalDependencies: {
243
+ unrelated: '~4.0.0'
244
+ }
245
+ }, [{
246
+ field: 'devDependencies',
247
+ name: '@pingux/target',
248
+ currentRange: '^1.2.3',
249
+ nextRange: '^1.2.4'
250
+ }]], ['devDependencies', {
251
+ name: '@pingux/source',
252
+ dependencies: {
253
+ '@pingux/target': '~1.2.3'
254
+ },
255
+ optionalDependencies: {
256
+ unrelated: '~4.0.0'
257
+ }
258
+ }, {
259
+ name: '@pingux/source',
260
+ dependencies: {
261
+ '@pingux/target': '~1.2.4'
262
+ },
263
+ optionalDependencies: {
264
+ unrelated: '~4.0.0'
265
+ }
266
+ }, [{
267
+ field: 'dependencies',
268
+ name: '@pingux/target',
269
+ currentRange: '~1.2.3',
270
+ nextRange: '~1.2.4'
271
+ }]], ['optionalDependencies', {
272
+ name: '@pingux/source',
273
+ dependencies: {
274
+ '@pingux/target': 'workspace:*'
275
+ },
276
+ devDependencies: {
277
+ unrelated: '^4.0.0'
278
+ }
279
+ }, {
280
+ name: '@pingux/source',
281
+ dependencies: {
282
+ '@pingux/target': 'workspace:1.2.4'
283
+ },
284
+ devDependencies: {
285
+ unrelated: '^4.0.0'
286
+ }
287
+ }, [{
288
+ field: 'dependencies',
289
+ name: '@pingux/target',
290
+ currentRange: 'workspace:*',
291
+ nextRange: 'workspace:1.2.4'
292
+ }]]])('preserves omitted %s fields without spurious changes', function (omittedField, manifest, expectedManifest, expectedChanges) {
293
+ var result = (0, _stableRelease.updateDependencyRanges)(manifest, '@pingux/target', '1.2.4');
294
+ expect(result.manifest).toEqual(expectedManifest);
295
+ expect(result.changes).toEqual(expectedChanges);
296
+ expect(result.manifest).not.toHaveProperty(omittedField);
297
+ });
298
+ });
299
+ describe('stableRelease module import', function () {
300
+ test('does not start release orchestration or write output when imported', function () {
301
+ var processExit = jest.spyOn(process, 'exit').mockImplementation(function () {
302
+ throw new Error('process.exit should not be called while importing stableRelease');
303
+ });
304
+ try {
305
+ jest.resetModules();
306
+ jest.isolateModules(function () {
307
+ // The module must be loaded inside isolateModules to verify import-time behavior.
308
+ // eslint-disable-next-line global-require
309
+ require('../../../../stableRelease');
310
+ });
311
+ expect(mockYargsParseAsync).not.toHaveBeenCalled();
312
+ expect(mockCreateProjectGraphAsync).not.toHaveBeenCalled();
313
+ expect(mockReleaseVersion).not.toHaveBeenCalled();
314
+ expect(mockReleaseChangelog).not.toHaveBeenCalled();
315
+ expect(mockReleasePublish).not.toHaveBeenCalled();
316
+ expect(mockWriteFileSync).not.toHaveBeenCalled();
317
+ expect(processExit).not.toHaveBeenCalled();
318
+ } finally {
319
+ processExit.mockRestore();
320
+ }
321
+ });
322
+ });
@@ -35,7 +35,7 @@ import Text from '../Text';
35
35
  import Stepper from './Stepper';
36
36
 
37
37
  // Emotion Cache added as test fails otherwise, root cause of this failure is unknown.
38
- // Failure occured with ThemeUI refactor.
38
+ // Failure occurred with ThemeUI refactor.
39
39
  // https://github.com/emotion-js/emotion/issues/1105#issuecomment-557726922
40
40
  import { jsx as ___EmotionJSX } from "@emotion/react";
41
41
  var emotionCache = createCache({
@@ -0,0 +1,320 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
10
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
11
+ import _Object$fromEntries from "@babel/runtime-corejs3/core-js-stable/object/from-entries";
12
+ import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
13
+ import _Object$entries from "@babel/runtime-corejs3/core-js-stable/object/entries";
14
+ import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
15
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context2, _context3; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context2 = ownKeys(Object(t), !0)).call(_context2, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context3 = ownKeys(Object(t))).call(_context3, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ // This test exercises the repository-root release script from the Astro package.
18
+ /* eslint-disable @nx/enforce-module-boundaries, import/no-relative-packages */
19
+ import { calculatePlannedVersions, updateDependencyRange, updateDependencyRanges } from '../../../../stableRelease';
20
+ /* eslint-enable @nx/enforce-module-boundaries, import/no-relative-packages */
21
+
22
+ var mockReleaseChangelog = jest.fn();
23
+ var mockReleasePublish = jest.fn();
24
+ var mockReleaseVersion = jest.fn();
25
+ var mockCreateProjectGraphAsync = jest.fn();
26
+ var mockWriteFileSync = jest.fn();
27
+ var mockYargsParseAsync = jest.fn().mockResolvedValue({
28
+ dryRun: true,
29
+ verbose: false
30
+ });
31
+ jest.mock('nx/release', function () {
32
+ return {
33
+ releaseChangelog: mockReleaseChangelog,
34
+ releasePublish: mockReleasePublish,
35
+ releaseVersion: mockReleaseVersion
36
+ };
37
+ });
38
+ jest.mock('nx/src/project-graph/project-graph', function () {
39
+ return {
40
+ createProjectGraphAsync: mockCreateProjectGraphAsync
41
+ };
42
+ });
43
+ jest.mock('node:fs', function () {
44
+ return _objectSpread(_objectSpread({}, jest.requireActual('node:fs')), {}, {
45
+ writeFileSync: mockWriteFileSync
46
+ });
47
+ });
48
+ jest.mock('yargs', function () {
49
+ return {
50
+ option: jest.fn().mockReturnThis(),
51
+ parseAsync: mockYargsParseAsync,
52
+ version: jest.fn().mockReturnThis()
53
+ };
54
+ });
55
+ var packageData = function packageData(manifests) {
56
+ var _context;
57
+ return _Object$fromEntries(_mapInstanceProperty(_context = _Object$entries(manifests)).call(_context, function (_ref) {
58
+ var _ref2 = _slicedToArray(_ref, 2),
59
+ projectName = _ref2[0],
60
+ manifest = _ref2[1];
61
+ return [projectName, {
62
+ manifest: manifest
63
+ }];
64
+ }));
65
+ };
66
+ describe('calculatePlannedVersions', function () {
67
+ test('prefers an existing new version, including an alpha promotion value', function () {
68
+ var projectsVersionData = {
69
+ astro: {
70
+ currentVersion: '4.2.0-alpha.1',
71
+ newVersion: '4.2.0'
72
+ },
73
+ wrapper: {
74
+ currentVersion: '2.1.3',
75
+ newVersion: '2.1.4'
76
+ }
77
+ };
78
+ expect(calculatePlannedVersions(['astro', 'wrapper'], projectsVersionData, packageData({
79
+ astro: {
80
+ version: '99.0.0'
81
+ },
82
+ wrapper: {
83
+ version: '99.0.0'
84
+ }
85
+ }))).toEqual({
86
+ astro: '4.2.0',
87
+ wrapper: '2.1.4'
88
+ });
89
+ });
90
+ test('increments the current version and then falls back to the manifest version', function () {
91
+ expect(calculatePlannedVersions(['current', 'manifest'], {
92
+ current: {
93
+ currentVersion: '1.2.3'
94
+ },
95
+ manifest: {}
96
+ }, packageData({
97
+ current: {
98
+ version: '9.9.9'
99
+ },
100
+ manifest: {
101
+ version: '2.4.0'
102
+ }
103
+ }))).toEqual({
104
+ current: '1.2.4',
105
+ manifest: '2.4.1'
106
+ });
107
+ });
108
+ test('throws the exact error for missing or invalid version data without mutating inputs', function () {
109
+ var projectsVersionData = {
110
+ missing: {
111
+ currentVersion: null,
112
+ newVersion: null
113
+ },
114
+ invalid: {
115
+ currentVersion: 'not-a-version'
116
+ }
117
+ };
118
+ var manifests = packageData({
119
+ missing: {},
120
+ invalid: {
121
+ version: 'also-invalid'
122
+ }
123
+ });
124
+ var projectsVersionDataBefore = JSON.parse(_JSON$stringify(projectsVersionData));
125
+ var manifestsBefore = JSON.parse(_JSON$stringify(manifests));
126
+ expect(function () {
127
+ return calculatePlannedVersions(['missing'], projectsVersionData, manifests);
128
+ }).toThrow('Unable to calculate a stable version for missing.');
129
+ expect(function () {
130
+ return calculatePlannedVersions(['invalid'], projectsVersionData, manifests);
131
+ }).toThrow('Unable to calculate a stable version for invalid.');
132
+ expect(projectsVersionData).toEqual(projectsVersionDataBefore);
133
+ expect(manifests).toEqual(manifestsBefore);
134
+ });
135
+ });
136
+ describe('updateDependencyRange', function () {
137
+ test.each([['^1.2.3', '1.2.4', '^1.2.4'], ['~1.2.3', '1.2.4', '~1.2.4'], ['=1.2.3', '1.2.4', '=1.2.4'], ['1.2.3', '1.2.4', '1.2.4'], ['workspace:^1.2.3', '1.2.4', 'workspace:^1.2.4'], ['workspace:~1.2.3', '1.2.4', 'workspace:~1.2.4'], ['workspace:*', '1.2.4', 'workspace:1.2.4'], ['file:../pkg', '1.2.4', 'file:../pkg'], ['link:../pkg', '1.2.4', 'link:../pkg']])('transforms %s to %s', function (range, version, expected) {
138
+ expect(updateDependencyRange(range, version)).toBe(expected);
139
+ });
140
+ });
141
+ describe('updateDependencyRanges', function () {
142
+ test('updates the target in every supported dependency field and reports each change', function () {
143
+ var manifest = {
144
+ name: '@pingux/source',
145
+ dependencies: {
146
+ '@pingux/target': '^1.2.3',
147
+ unrelated: '~4.0.0'
148
+ },
149
+ devDependencies: {
150
+ '@pingux/target': 'workspace:^1.2.3'
151
+ },
152
+ optionalDependencies: {
153
+ '@pingux/target': 'workspace:*'
154
+ }
155
+ };
156
+ var dependenciesBefore = manifest.dependencies;
157
+ var devDependenciesBefore = manifest.devDependencies;
158
+ var optionalDependenciesBefore = manifest.optionalDependencies;
159
+ var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
160
+ expect(result.manifest).toEqual(_objectSpread(_objectSpread({}, manifest), {}, {
161
+ dependencies: {
162
+ '@pingux/target': '^1.2.4',
163
+ unrelated: '~4.0.0'
164
+ },
165
+ devDependencies: {
166
+ '@pingux/target': 'workspace:^1.2.4'
167
+ },
168
+ optionalDependencies: {
169
+ '@pingux/target': 'workspace:1.2.4'
170
+ }
171
+ }));
172
+ expect(result.changes).toEqual([{
173
+ field: 'dependencies',
174
+ name: '@pingux/target',
175
+ currentRange: '^1.2.3',
176
+ nextRange: '^1.2.4'
177
+ }, {
178
+ field: 'devDependencies',
179
+ name: '@pingux/target',
180
+ currentRange: 'workspace:^1.2.3',
181
+ nextRange: 'workspace:^1.2.4'
182
+ }, {
183
+ field: 'optionalDependencies',
184
+ name: '@pingux/target',
185
+ currentRange: 'workspace:*',
186
+ nextRange: 'workspace:1.2.4'
187
+ }]);
188
+ expect(manifest.dependencies).toBe(dependenciesBefore);
189
+ expect(manifest.devDependencies).toBe(devDependenciesBefore);
190
+ expect(manifest.optionalDependencies).toBe(optionalDependenciesBefore);
191
+ expect(manifest).toEqual({
192
+ name: '@pingux/source',
193
+ dependencies: {
194
+ '@pingux/target': '^1.2.3',
195
+ unrelated: '~4.0.0'
196
+ },
197
+ devDependencies: {
198
+ '@pingux/target': 'workspace:^1.2.3'
199
+ },
200
+ optionalDependencies: {
201
+ '@pingux/target': 'workspace:*'
202
+ }
203
+ });
204
+ });
205
+ test('leaves unrelated, absent, equal, and local-protocol entries unchanged', function () {
206
+ var manifest = {
207
+ name: '@pingux/source',
208
+ dependencies: {
209
+ '@pingux/target': 'file:../target',
210
+ unrelated: '^4.0.0'
211
+ },
212
+ devDependencies: {
213
+ '@pingux/target': 'link:../target'
214
+ },
215
+ optionalDependencies: {
216
+ '@pingux/target': '^1.2.4'
217
+ }
218
+ };
219
+ var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
220
+ expect(result.changes).toEqual([]);
221
+ expect(result.manifest).toEqual(manifest);
222
+ expect(result.manifest).not.toBe(manifest);
223
+ expect(result.manifest.dependencies).toBe(manifest.dependencies);
224
+ expect(result.manifest.devDependencies).toBe(manifest.devDependencies);
225
+ expect(result.manifest.optionalDependencies).toBe(manifest.optionalDependencies);
226
+ });
227
+ test.each([['dependencies', {
228
+ name: '@pingux/source',
229
+ devDependencies: {
230
+ '@pingux/target': '^1.2.3'
231
+ },
232
+ optionalDependencies: {
233
+ unrelated: '~4.0.0'
234
+ }
235
+ }, {
236
+ name: '@pingux/source',
237
+ devDependencies: {
238
+ '@pingux/target': '^1.2.4'
239
+ },
240
+ optionalDependencies: {
241
+ unrelated: '~4.0.0'
242
+ }
243
+ }, [{
244
+ field: 'devDependencies',
245
+ name: '@pingux/target',
246
+ currentRange: '^1.2.3',
247
+ nextRange: '^1.2.4'
248
+ }]], ['devDependencies', {
249
+ name: '@pingux/source',
250
+ dependencies: {
251
+ '@pingux/target': '~1.2.3'
252
+ },
253
+ optionalDependencies: {
254
+ unrelated: '~4.0.0'
255
+ }
256
+ }, {
257
+ name: '@pingux/source',
258
+ dependencies: {
259
+ '@pingux/target': '~1.2.4'
260
+ },
261
+ optionalDependencies: {
262
+ unrelated: '~4.0.0'
263
+ }
264
+ }, [{
265
+ field: 'dependencies',
266
+ name: '@pingux/target',
267
+ currentRange: '~1.2.3',
268
+ nextRange: '~1.2.4'
269
+ }]], ['optionalDependencies', {
270
+ name: '@pingux/source',
271
+ dependencies: {
272
+ '@pingux/target': 'workspace:*'
273
+ },
274
+ devDependencies: {
275
+ unrelated: '^4.0.0'
276
+ }
277
+ }, {
278
+ name: '@pingux/source',
279
+ dependencies: {
280
+ '@pingux/target': 'workspace:1.2.4'
281
+ },
282
+ devDependencies: {
283
+ unrelated: '^4.0.0'
284
+ }
285
+ }, [{
286
+ field: 'dependencies',
287
+ name: '@pingux/target',
288
+ currentRange: 'workspace:*',
289
+ nextRange: 'workspace:1.2.4'
290
+ }]]])('preserves omitted %s fields without spurious changes', function (omittedField, manifest, expectedManifest, expectedChanges) {
291
+ var result = updateDependencyRanges(manifest, '@pingux/target', '1.2.4');
292
+ expect(result.manifest).toEqual(expectedManifest);
293
+ expect(result.changes).toEqual(expectedChanges);
294
+ expect(result.manifest).not.toHaveProperty(omittedField);
295
+ });
296
+ });
297
+ describe('stableRelease module import', function () {
298
+ test('does not start release orchestration or write output when imported', function () {
299
+ var processExit = jest.spyOn(process, 'exit').mockImplementation(function () {
300
+ throw new Error('process.exit should not be called while importing stableRelease');
301
+ });
302
+ try {
303
+ jest.resetModules();
304
+ jest.isolateModules(function () {
305
+ // The module must be loaded inside isolateModules to verify import-time behavior.
306
+ // eslint-disable-next-line global-require
307
+ require('../../../../stableRelease');
308
+ });
309
+ expect(mockYargsParseAsync).not.toHaveBeenCalled();
310
+ expect(mockCreateProjectGraphAsync).not.toHaveBeenCalled();
311
+ expect(mockReleaseVersion).not.toHaveBeenCalled();
312
+ expect(mockReleaseChangelog).not.toHaveBeenCalled();
313
+ expect(mockReleasePublish).not.toHaveBeenCalled();
314
+ expect(mockWriteFileSync).not.toHaveBeenCalled();
315
+ expect(processExit).not.toHaveBeenCalled();
316
+ } finally {
317
+ processExit.mockRestore();
318
+ }
319
+ });
320
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.221.1",
3
+ "version": "2.221.2-alpha.0",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",