@@ -28,9 +28,11 @@ for (const submodule of submodules) {
2828 } ;
2929 fs . writeFileSync ( path . join ( root , "package.json" ) , JSON . stringify ( pkgJson , null , 2 ) + "\n" ) ;
3030 }
31- if ( ! pkgJson . files . includes ( `./${ submodule } .js` ) ) {
31+ if ( ! pkgJson . files . includes ( `./${ submodule } .js` ) || ! pkgJson . files . includes ( `./ ${ submodule } .d.ts` ) ) {
3232 pkgJson . files . push ( `./${ submodule } .js` ) ;
33+ pkgJson . files . push ( `./${ submodule } .d.ts` ) ;
3334 errors . push ( `package.json files array missing ${ submodule } .js compatibility redirect file.` ) ;
35+ pkgJson . files = [ ...new Set ( pkgJson . files ) ] . sort ( ) ;
3436 fs . writeFileSync ( path . join ( root , "package.json" ) , JSON . stringify ( pkgJson , null , 2 ) + "\n" ) ;
3537 }
3638 // tsconfig metadata.
@@ -54,6 +56,23 @@ for (const submodule of submodules) {
5456 * This is a compatibility redirect for contexts that do not understand package.json exports field.
5557 */
5658module.exports = require("./dist-cjs/submodules/${ submodule } /index.js");
59+ `
60+ ) ;
61+ }
62+ // compatibility types file.
63+ const compatibilityTypesFile = path . join ( root , `${ submodule } .d.ts` ) ;
64+ if ( ! fs . existsSync ( compatibilityTypesFile ) ) {
65+ errors . push ( `${ submodule } is missing compatibility types file in the package root folder.` ) ;
66+ fs . writeFileSync (
67+ compatibilityTypesFile ,
68+ `
69+ /**
70+ * Do not edit:
71+ * This is a compatibility redirect for contexts that do not understand package.json exports field.
72+ */
73+ declare module "@smithy/core/${ submodule } " {
74+ export * from "@smithy/core/dist-types/submodules/${ submodule } /index.d";
75+ }
5776`
5877 ) ;
5978 }
0 commit comments