@proteinjs/reflection-build 1.5.0 → 2.0.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.
Files changed (80) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/src/BuildContract.d.ts +69 -0
  3. package/dist/src/BuildContract.js +393 -0
  4. package/dist/src/BuildContract.js.map +1 -0
  5. package/dist/src/ReflectionDoctor.d.ts +95 -0
  6. package/dist/src/ReflectionDoctor.js +588 -0
  7. package/dist/src/ReflectionDoctor.js.map +1 -0
  8. package/dist/src/build.d.ts +5 -1
  9. package/dist/src/build.js +13 -77
  10. package/dist/src/build.js.map +1 -1
  11. package/dist/src/codegen/writeGeneratedIndex.d.ts +18 -0
  12. package/dist/src/codegen/writeGeneratedIndex.js +58 -15
  13. package/dist/src/codegen/writeGeneratedIndex.js.map +1 -1
  14. package/dist/src/parser/createGraphBuilder.js +30 -5
  15. package/dist/src/parser/createGraphBuilder.js.map +1 -1
  16. package/dist/src/runBuild.js +12 -2
  17. package/dist/src/runBuild.js.map +1 -1
  18. package/dist/src/runDoctor.d.ts +2 -0
  19. package/dist/src/runDoctor.js +83 -0
  20. package/dist/src/runDoctor.js.map +1 -0
  21. package/dist/test/GraphEmitRelativePaths.test.d.ts +1 -0
  22. package/dist/test/GraphEmitRelativePaths.test.js +162 -0
  23. package/dist/test/GraphEmitRelativePaths.test.js.map +1 -0
  24. package/dist/test/ReflectionDoctor.test.d.ts +1 -0
  25. package/dist/test/ReflectionDoctor.test.js +316 -0
  26. package/dist/test/ReflectionDoctor.test.js.map +1 -0
  27. package/dist/test/TestSubpathContract.test.d.ts +1 -0
  28. package/dist/test/TestSubpathContract.test.js +260 -0
  29. package/dist/test/TestSubpathContract.test.js.map +1 -0
  30. package/dist/test/ValidateDontMutate.test.d.ts +1 -0
  31. package/dist/test/ValidateDontMutate.test.js +238 -0
  32. package/dist/test/ValidateDontMutate.test.js.map +1 -0
  33. package/dist/test/examples/source-repository/a/generated/index.js +1 -1
  34. package/dist/test/examples/source-repository/a/generated/index.js.map +1 -1
  35. package/dist/test/examples/source-repository/b/generated/index.js +1 -1
  36. package/dist/test/examples/source-repository/b/generated/index.js.map +1 -1
  37. package/package.json +5 -4
  38. package/src/BuildContract.ts +384 -0
  39. package/src/ReflectionDoctor.ts +589 -0
  40. package/src/build.ts +19 -56
  41. package/src/codegen/writeGeneratedIndex.ts +51 -13
  42. package/src/parser/createGraphBuilder.ts +9 -4
  43. package/src/runBuild.ts +7 -1
  44. package/src/runDoctor.ts +34 -0
  45. package/test/GraphEmitRelativePaths.test.ts +95 -0
  46. package/test/ReflectionDoctor.test.ts +193 -0
  47. package/test/TestSubpathContract.test.ts +148 -0
  48. package/test/ValidateDontMutate.test.ts +126 -0
  49. package/test/examples/source-repository/a/dist/BuildContract.d.ts +69 -0
  50. package/test/examples/source-repository/a/dist/BuildContract.js +393 -0
  51. package/test/examples/source-repository/a/dist/BuildContract.js.map +1 -0
  52. package/test/examples/source-repository/a/dist/build.d.ts +5 -1
  53. package/test/examples/source-repository/a/dist/build.js +13 -77
  54. package/test/examples/source-repository/a/dist/build.js.map +1 -1
  55. package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.d.ts +18 -0
  56. package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js +58 -15
  57. package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js.map +1 -1
  58. package/test/examples/source-repository/a/dist/generated/index.js +1 -1
  59. package/test/examples/source-repository/a/dist/generated/index.js.map +1 -1
  60. package/test/examples/source-repository/a/dist/parser/createGraphBuilder.js +30 -5
  61. package/test/examples/source-repository/a/dist/parser/createGraphBuilder.js.map +1 -1
  62. package/test/examples/source-repository/a/dist/runBuild.js +12 -2
  63. package/test/examples/source-repository/a/dist/runBuild.js.map +1 -1
  64. package/test/examples/source-repository/a/generated/index.ts +1 -1
  65. package/test/examples/source-repository/b/dist/BuildContract.d.ts +69 -0
  66. package/test/examples/source-repository/b/dist/BuildContract.js +393 -0
  67. package/test/examples/source-repository/b/dist/BuildContract.js.map +1 -0
  68. package/test/examples/source-repository/b/dist/build.d.ts +5 -1
  69. package/test/examples/source-repository/b/dist/build.js +13 -77
  70. package/test/examples/source-repository/b/dist/build.js.map +1 -1
  71. package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.d.ts +18 -0
  72. package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js +58 -15
  73. package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js.map +1 -1
  74. package/test/examples/source-repository/b/dist/generated/index.js +1 -1
  75. package/test/examples/source-repository/b/dist/generated/index.js.map +1 -1
  76. package/test/examples/source-repository/b/dist/parser/createGraphBuilder.js +30 -5
  77. package/test/examples/source-repository/b/dist/parser/createGraphBuilder.js.map +1 -1
  78. package/test/examples/source-repository/b/dist/runBuild.js +12 -2
  79. package/test/examples/source-repository/b/dist/runBuild.js.map +1 -1
  80. package/test/examples/source-repository/b/generated/index.ts +1 -1
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ var fs = __importStar(require("fs"));
63
+ var os = __importStar(require("os"));
64
+ var path = __importStar(require("path"));
65
+ var build_1 = require("../src/build");
66
+ /**
67
+ * The ./test subpath contract (task #104 §3.2, the d51556f0 class): the test subpath is a
68
+ * reflection-build feature, so reflection-build owns the COMPLETE artifact contract for it —
69
+ * root stubs, exports/typesVersions mappings, files[] entries, tsconfig excludes — instead of
70
+ * every package hand-rolling the d51556f0 shims and drifting.
71
+ *
72
+ * Contract pieces, validated/emitted on every subpath build (primary root != 'src'):
73
+ * - root <root>.js / <root>.d.ts stubs re-exporting dist/generated/<root>/index — win the
74
+ * node10/paths-mapped file lookup so consumers resolve built dist, never sources (TS6059)
75
+ * - exports: "." and "./<root>" mapped to the built artifacts (node16/modern resolution)
76
+ * - typesVersions: "<root>" mapped for node10 TYPES resolution
77
+ * - files[]: stub entries added when a files allowlist exists (published tarballs keep them)
78
+ * - tsconfig exclude: the stubs never become compiler inputs
79
+ *
80
+ * Red-before-green: against pre-change code nothing emits any of this — every assertion fails.
81
+ */
82
+ describe('test-subpath contract', function () {
83
+ var pkgDir;
84
+ var savedEnv = {};
85
+ var writeFixture = function (packageJson) {
86
+ pkgDir = fs.mkdtempSync(path.join(os.tmpdir(), 'refl-subpath-'));
87
+ fs.writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify(packageJson, null, 2));
88
+ fs.mkdirSync(path.join(pkgDir, 'src'));
89
+ fs.writeFileSync(path.join(pkgDir, 'src', 'index.ts'), "export * from './Example';\n");
90
+ fs.writeFileSync(path.join(pkgDir, 'src', 'Example.ts'), "export class Example {}\n");
91
+ fs.mkdirSync(path.join(pkgDir, 'test'));
92
+ fs.writeFileSync(path.join(pkgDir, 'test', 'index.ts'), "export * from './TestHelper';\n");
93
+ fs.writeFileSync(path.join(pkgDir, 'test', 'TestHelper.ts'), "export class TestHelper {}\n");
94
+ process.env.INIT_CWD = pkgDir;
95
+ process.env.REFLECTION_SOURCE_DIRS = 'test,src';
96
+ process.env.REFLECTION_EXPORT_FROM = 'test/index.ts';
97
+ };
98
+ var readPackageJson = function () { return JSON.parse(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')); };
99
+ var readTsconfig = function () { return JSON.parse(fs.readFileSync(path.join(pkgDir, 'tsconfig.json'), 'utf-8')); };
100
+ beforeEach(function () {
101
+ for (var _i = 0, _a = ['INIT_CWD', 'REFLECTION_SOURCE_DIRS', 'REFLECTION_EXPORT_FROM', 'REFLECTION_DIST_DIR']; _i < _a.length; _i++) {
102
+ var key = _a[_i];
103
+ savedEnv[key] = process.env[key];
104
+ delete process.env[key];
105
+ }
106
+ });
107
+ afterEach(function () {
108
+ for (var _i = 0, _a = Object.keys(savedEnv); _i < _a.length; _i++) {
109
+ var key = _a[_i];
110
+ if (typeof savedEnv[key] === 'undefined') {
111
+ delete process.env[key];
112
+ }
113
+ else {
114
+ process.env[key] = savedEnv[key];
115
+ }
116
+ }
117
+ fs.rmdirSync(pkgDir, { recursive: true });
118
+ });
119
+ it('emits root stubs that resolve the subpath to built dist in every install shape', function () { return __awaiter(void 0, void 0, void 0, function () {
120
+ var stubJs, stubDts;
121
+ return __generator(this, function (_a) {
122
+ switch (_a.label) {
123
+ case 0:
124
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0' });
125
+ return [4 /*yield*/, (0, build_1.build)()];
126
+ case 1:
127
+ _a.sent();
128
+ stubJs = fs.readFileSync(path.join(pkgDir, 'test.js'), 'utf-8');
129
+ expect(stubJs).toContain("require('./dist/generated/test/index.js')");
130
+ stubDts = fs.readFileSync(path.join(pkgDir, 'test.d.ts'), 'utf-8');
131
+ expect(stubDts).toContain("export * from './dist/generated/test/index'");
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ }); });
136
+ it('maps the subpath in exports and typesVersions', function () { return __awaiter(void 0, void 0, void 0, function () {
137
+ var packageJson;
138
+ return __generator(this, function (_a) {
139
+ switch (_a.label) {
140
+ case 0:
141
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0' });
142
+ return [4 /*yield*/, (0, build_1.build)()];
143
+ case 1:
144
+ _a.sent();
145
+ packageJson = readPackageJson();
146
+ expect(packageJson.exports['.']).toEqual({
147
+ types: './dist/generated/index.d.ts',
148
+ default: './dist/generated/index.js',
149
+ });
150
+ expect(packageJson.exports['./test']).toEqual({
151
+ types: './dist/generated/test/index.d.ts',
152
+ default: './dist/generated/test/index.js',
153
+ });
154
+ expect(packageJson.typesVersions['*']['test']).toEqual(['dist/generated/test/index.d.ts']);
155
+ return [2 /*return*/];
156
+ }
157
+ });
158
+ }); });
159
+ it('keeps extra exports subpaths a package added on its own', function () { return __awaiter(void 0, void 0, void 0, function () {
160
+ var packageJson;
161
+ return __generator(this, function (_a) {
162
+ switch (_a.label) {
163
+ case 0:
164
+ writeFixture({
165
+ name: '@test/subpath-fixture',
166
+ version: '1.0.0',
167
+ exports: { './extra': './dist/extra.js' },
168
+ });
169
+ return [4 /*yield*/, (0, build_1.build)()];
170
+ case 1:
171
+ _a.sent();
172
+ packageJson = readPackageJson();
173
+ expect(packageJson.exports['./extra']).toBe('./dist/extra.js');
174
+ expect(packageJson.exports['./test']).toEqual({
175
+ types: './dist/generated/test/index.d.ts',
176
+ default: './dist/generated/test/index.js',
177
+ });
178
+ return [2 /*return*/];
179
+ }
180
+ });
181
+ }); });
182
+ it('adds stub entries to an existing files allowlist, and leaves absent files[] absent', function () { return __awaiter(void 0, void 0, void 0, function () {
183
+ return __generator(this, function (_a) {
184
+ switch (_a.label) {
185
+ case 0:
186
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0', files: ['dist/**'] });
187
+ return [4 /*yield*/, (0, build_1.build)()];
188
+ case 1:
189
+ _a.sent();
190
+ expect(readPackageJson().files).toEqual(expect.arrayContaining(['dist/**', 'test.js', 'test.d.ts']));
191
+ fs.rmdirSync(pkgDir, { recursive: true });
192
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0' });
193
+ return [4 /*yield*/, (0, build_1.build)()];
194
+ case 2:
195
+ _a.sent();
196
+ expect(readPackageJson().files).toBeUndefined();
197
+ return [2 /*return*/];
198
+ }
199
+ });
200
+ }); });
201
+ it('excludes the stubs from compilation in tsconfig without clobbering default excludes', function () { return __awaiter(void 0, void 0, void 0, function () {
202
+ var tsconfig;
203
+ return __generator(this, function (_a) {
204
+ switch (_a.label) {
205
+ case 0:
206
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0' });
207
+ return [4 /*yield*/, (0, build_1.build)()];
208
+ case 1:
209
+ _a.sent();
210
+ tsconfig = readTsconfig();
211
+ expect(tsconfig.exclude).toEqual(expect.arrayContaining(['node_modules', 'test.js', 'test.d.ts']));
212
+ return [2 /*return*/];
213
+ }
214
+ });
215
+ }); });
216
+ it('fails friendly on a conflicting subpath mapping and leaves package.json untouched', function () { return __awaiter(void 0, void 0, void 0, function () {
217
+ var before;
218
+ return __generator(this, function (_a) {
219
+ switch (_a.label) {
220
+ case 0:
221
+ writeFixture({
222
+ name: '@test/subpath-fixture',
223
+ version: '1.0.0',
224
+ exports: { './test': './dist/somewhere-else.js' },
225
+ });
226
+ fs.mkdirSync(path.join(pkgDir, 'dist'));
227
+ fs.writeFileSync(path.join(pkgDir, 'dist', 'somewhere-else.js'), 'module.exports = {};\n');
228
+ before = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8');
229
+ return [4 /*yield*/, expect((0, build_1.build)()).rejects.toThrow(/--fix/)];
230
+ case 1:
231
+ _a.sent();
232
+ expect(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')).toBe(before);
233
+ return [2 /*return*/];
234
+ }
235
+ });
236
+ }); });
237
+ it('is idempotent: a second build changes nothing', function () { return __awaiter(void 0, void 0, void 0, function () {
238
+ var packageJsonAfterFirst, stubAfterFirst, tsconfigAfterFirst;
239
+ return __generator(this, function (_a) {
240
+ switch (_a.label) {
241
+ case 0:
242
+ writeFixture({ name: '@test/subpath-fixture', version: '1.0.0', files: ['dist/**'] });
243
+ return [4 /*yield*/, (0, build_1.build)()];
244
+ case 1:
245
+ _a.sent();
246
+ packageJsonAfterFirst = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8');
247
+ stubAfterFirst = fs.readFileSync(path.join(pkgDir, 'test.js'), 'utf-8');
248
+ tsconfigAfterFirst = fs.readFileSync(path.join(pkgDir, 'tsconfig.json'), 'utf-8');
249
+ return [4 /*yield*/, (0, build_1.build)()];
250
+ case 2:
251
+ _a.sent();
252
+ expect(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')).toBe(packageJsonAfterFirst);
253
+ expect(fs.readFileSync(path.join(pkgDir, 'test.js'), 'utf-8')).toBe(stubAfterFirst);
254
+ expect(fs.readFileSync(path.join(pkgDir, 'tsconfig.json'), 'utf-8')).toBe(tsconfigAfterFirst);
255
+ return [2 /*return*/];
256
+ }
257
+ });
258
+ }); });
259
+ });
260
+ //# sourceMappingURL=TestSubpathContract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestSubpathContract.test.js","sourceRoot":"","sources":["../../test/TestSubpathContract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __generator = (this && this.__generator) || function (thisArg, body) {
35
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
+ function verb(n) { return function (v) { return step([n, v]); }; }
38
+ function step(op) {
39
+ if (f) throw new TypeError("Generator is already executing.");
40
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
41
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
+ if (y = 0, t) op = [op[0] & 2, t.value];
43
+ switch (op[0]) {
44
+ case 0: case 1: t = op; break;
45
+ case 4: _.label++; return { value: op[1], done: false };
46
+ case 5: _.label++; y = op[1]; op = [0]; continue;
47
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
+ default:
49
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
+ if (t[2]) _.ops.pop();
54
+ _.trys.pop(); continue;
55
+ }
56
+ op = body.call(thisArg, _);
57
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
+ }
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ var fs = __importStar(require("fs"));
63
+ var os = __importStar(require("os"));
64
+ var path = __importStar(require("path"));
65
+ var build_1 = require("../src/build");
66
+ /**
67
+ * Validate-don't-mutate (task #104 §3.3): the build computes the package-config contract and
68
+ * VALIDATES it instead of silently rewriting files.
69
+ *
70
+ * The founder's UX bar:
71
+ * - ABSENCE is not a mismatch — a fresh package missing main/types gets them SET (today's
72
+ * behavior kept; the copy-a-package workflow survives).
73
+ * - The build errors ONLY on conflicting existing values, and the error is friendly: plain
74
+ * words, why it matters, the exact lines to paste, `--fix` offered first.
75
+ * - `reflection-build --fix` writes the contract; a second run is a no-op.
76
+ *
77
+ * Red-before-green: against pre-change code the conflict tests fail because the mutating
78
+ * build succeeds and silently rewrites package.json.
79
+ */
80
+ describe("validate-don't-mutate", function () {
81
+ var pkgDir;
82
+ var savedEnv = {};
83
+ var writeFixture = function (packageJson) {
84
+ pkgDir = fs.mkdtempSync(path.join(os.tmpdir(), 'refl-validate-'));
85
+ fs.writeFileSync(path.join(pkgDir, 'package.json'), JSON.stringify(packageJson, null, 2));
86
+ fs.mkdirSync(path.join(pkgDir, 'src'));
87
+ fs.writeFileSync(path.join(pkgDir, 'src', 'index.ts'), "export * from './Example';\n");
88
+ fs.writeFileSync(path.join(pkgDir, 'src', 'Example.ts'), "export class Example {}\n");
89
+ process.env.INIT_CWD = pkgDir;
90
+ };
91
+ var readPackageJson = function () { return JSON.parse(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')); };
92
+ beforeEach(function () {
93
+ for (var _i = 0, _a = ['INIT_CWD', 'REFLECTION_SOURCE_DIRS', 'REFLECTION_EXPORT_FROM', 'REFLECTION_DIST_DIR']; _i < _a.length; _i++) {
94
+ var key = _a[_i];
95
+ savedEnv[key] = process.env[key];
96
+ delete process.env[key];
97
+ }
98
+ });
99
+ afterEach(function () {
100
+ for (var _i = 0, _a = Object.keys(savedEnv); _i < _a.length; _i++) {
101
+ var key = _a[_i];
102
+ if (typeof savedEnv[key] === 'undefined') {
103
+ delete process.env[key];
104
+ }
105
+ else {
106
+ process.env[key] = savedEnv[key];
107
+ }
108
+ }
109
+ fs.rmdirSync(pkgDir, { recursive: true });
110
+ });
111
+ it('fails the build on a conflicting main and leaves package.json untouched', function () { return __awaiter(void 0, void 0, void 0, function () {
112
+ var before;
113
+ return __generator(this, function (_a) {
114
+ switch (_a.label) {
115
+ case 0:
116
+ writeFixture({ name: '@test/validate-fixture', version: '1.0.0', main: './dist/custom-entry.js' });
117
+ // The conflicting value points at a REAL file — a deliberate setting, not boilerplate.
118
+ fs.mkdirSync(path.join(pkgDir, 'dist'));
119
+ fs.writeFileSync(path.join(pkgDir, 'dist', 'custom-entry.js'), 'module.exports = {};\n');
120
+ before = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8');
121
+ return [4 /*yield*/, expect((0, build_1.build)()).rejects.toThrow(/--fix/)];
122
+ case 1:
123
+ _a.sent();
124
+ expect(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')).toBe(before);
125
+ return [2 /*return*/];
126
+ }
127
+ });
128
+ }); });
129
+ it('the conflict error is friendly: offers --fix first, then the exact lines to paste', function () { return __awaiter(void 0, void 0, void 0, function () {
130
+ var message, error_1;
131
+ return __generator(this, function (_a) {
132
+ switch (_a.label) {
133
+ case 0:
134
+ writeFixture({ name: '@test/validate-fixture', version: '1.0.0', main: './dist/custom-entry.js' });
135
+ fs.mkdirSync(path.join(pkgDir, 'dist'));
136
+ fs.writeFileSync(path.join(pkgDir, 'dist', 'custom-entry.js'), 'module.exports = {};\n');
137
+ message = '';
138
+ _a.label = 1;
139
+ case 1:
140
+ _a.trys.push([1, 3, , 4]);
141
+ return [4 /*yield*/, (0, build_1.build)()];
142
+ case 2:
143
+ _a.sent();
144
+ return [3 /*break*/, 4];
145
+ case 3:
146
+ error_1 = _a.sent();
147
+ message = error_1.message;
148
+ return [3 /*break*/, 4];
149
+ case 4:
150
+ expect(message).toContain('reflection-build --fix');
151
+ expect(message).toContain('"main": "./dist/generated/index.js"');
152
+ expect(message).toContain('"types": "./dist/generated/index.d.ts"');
153
+ // --fix is the first remedy offered, before the paste-able lines.
154
+ expect(message.indexOf('--fix')).toBeGreaterThan(-1);
155
+ expect(message.indexOf('--fix')).toBeLessThan(message.indexOf('"main": "./dist/generated/index.js"'));
156
+ // Plain words about why it matters, not just a diff.
157
+ expect(message.toLowerCase()).toContain('consumer');
158
+ return [2 /*return*/];
159
+ }
160
+ });
161
+ }); });
162
+ it('sets absent main/types silently — the fresh/copied-package workflow survives', function () { return __awaiter(void 0, void 0, void 0, function () {
163
+ var packageJson;
164
+ return __generator(this, function (_a) {
165
+ switch (_a.label) {
166
+ case 0:
167
+ writeFixture({ name: '@test/validate-fixture', version: '1.0.0' });
168
+ return [4 /*yield*/, (0, build_1.build)()];
169
+ case 1:
170
+ _a.sent();
171
+ packageJson = readPackageJson();
172
+ expect(packageJson.main).toBe('./dist/generated/index.js');
173
+ expect(packageJson.types).toBe('./dist/generated/index.d.ts');
174
+ return [2 /*return*/];
175
+ }
176
+ });
177
+ }); });
178
+ it('treats npm-init boilerplate (main pointing at a file that does not exist) as absence', function () { return __awaiter(void 0, void 0, void 0, function () {
179
+ return __generator(this, function (_a) {
180
+ switch (_a.label) {
181
+ case 0:
182
+ writeFixture({ name: '@test/validate-fixture', version: '1.0.0', main: 'index.js' });
183
+ return [4 /*yield*/, (0, build_1.build)()];
184
+ case 1:
185
+ _a.sent();
186
+ expect(readPackageJson().main).toBe('./dist/generated/index.js');
187
+ return [2 /*return*/];
188
+ }
189
+ });
190
+ }); });
191
+ it('accepts a package already on contract without touching it', function () { return __awaiter(void 0, void 0, void 0, function () {
192
+ var first;
193
+ return __generator(this, function (_a) {
194
+ switch (_a.label) {
195
+ case 0:
196
+ writeFixture({
197
+ name: '@test/validate-fixture',
198
+ version: '1.0.0',
199
+ main: './dist/generated/index.js',
200
+ types: './dist/generated/index.d.ts',
201
+ });
202
+ return [4 /*yield*/, (0, build_1.build)()];
203
+ case 1:
204
+ _a.sent();
205
+ first = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8');
206
+ return [4 /*yield*/, (0, build_1.build)()];
207
+ case 2:
208
+ _a.sent();
209
+ expect(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')).toBe(first);
210
+ return [2 /*return*/];
211
+ }
212
+ });
213
+ }); });
214
+ it('--fix rewrites conflicting values to the contract; a second run is a no-op', function () { return __awaiter(void 0, void 0, void 0, function () {
215
+ var packageJson, afterFix;
216
+ return __generator(this, function (_a) {
217
+ switch (_a.label) {
218
+ case 0:
219
+ writeFixture({ name: '@test/validate-fixture', version: '1.0.0', main: './dist/custom-entry.js' });
220
+ fs.mkdirSync(path.join(pkgDir, 'dist'));
221
+ fs.writeFileSync(path.join(pkgDir, 'dist', 'custom-entry.js'), 'module.exports = {};\n');
222
+ return [4 /*yield*/, (0, build_1.build)({ fix: true })];
223
+ case 1:
224
+ _a.sent();
225
+ packageJson = readPackageJson();
226
+ expect(packageJson.main).toBe('./dist/generated/index.js');
227
+ expect(packageJson.types).toBe('./dist/generated/index.d.ts');
228
+ afterFix = fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8');
229
+ return [4 /*yield*/, (0, build_1.build)()];
230
+ case 2:
231
+ _a.sent();
232
+ expect(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8')).toBe(afterFix);
233
+ return [2 /*return*/];
234
+ }
235
+ });
236
+ }); });
237
+ });
238
+ //# sourceMappingURL=ValidateDontMutate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidateDontMutate.test.js","sourceRoot":"","sources":["../../test/ValidateDontMutate.test.ts"],"names":[],"mappings":"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"}