@intlayer/webpack 1.0.0 → 1.2.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 (108) hide show
  1. package/dist/cjs/getEntries.cjs +41 -0
  2. package/dist/cjs/getEntries.cjs.map +1 -0
  3. package/dist/cjs/getEntries.d.ts +5 -0
  4. package/dist/cjs/index.cjs +12 -24
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.ts +4 -0
  7. package/dist/cjs/utils.cjs +32 -31
  8. package/dist/cjs/utils.cjs.map +1 -1
  9. package/dist/cjs/utils.d.ts +7 -0
  10. package/dist/cjs/webpack-plugin.cjs +12 -161
  11. package/dist/cjs/webpack-plugin.cjs.map +1 -1
  12. package/dist/cjs/webpack-plugin.d.ts +5 -0
  13. package/dist/cjs/webpack.config.cjs +53 -63
  14. package/dist/cjs/webpack.config.cjs.map +1 -1
  15. package/dist/cjs/webpack.config.d.ts +7 -0
  16. package/dist/esm/getEntries.d.mts +5 -0
  17. package/dist/esm/getEntries.mjs +17 -0
  18. package/dist/esm/getEntries.mjs.map +1 -0
  19. package/dist/esm/index.d.mts +4 -9
  20. package/dist/esm/index.mjs +4 -8
  21. package/dist/esm/index.mjs.map +1 -1
  22. package/dist/esm/utils.d.mts +5 -2
  23. package/dist/esm/utils.mjs +15 -17
  24. package/dist/esm/utils.mjs.map +1 -1
  25. package/dist/esm/webpack-plugin.d.mts +1 -11
  26. package/dist/esm/webpack-plugin.mjs +8 -142
  27. package/dist/esm/webpack-plugin.mjs.map +1 -1
  28. package/dist/esm/webpack.config.d.mts +2 -2
  29. package/dist/esm/webpack.config.mjs +48 -39
  30. package/dist/esm/webpack.config.mjs.map +1 -1
  31. package/package.json +14 -18
  32. package/src/getEntries.ts +19 -0
  33. package/src/index.ts +2 -12
  34. package/src/utils.ts +19 -19
  35. package/src/webpack-plugin.ts +5 -180
  36. package/src/webpack.config.ts +32 -28
  37. package/dist/cjs/scripts/bundle.cjs +0 -68
  38. package/dist/cjs/scripts/bundle.cjs.map +0 -1
  39. package/dist/cjs/scripts/index.cjs +0 -33
  40. package/dist/cjs/scripts/index.cjs.map +0 -1
  41. package/dist/cjs/scripts/startServer.cjs +0 -44
  42. package/dist/cjs/scripts/startServer.cjs.map +0 -1
  43. package/dist/cjs/transpiler/dictionary_to_main/createDictionaryList.cjs +0 -92
  44. package/dist/cjs/transpiler/dictionary_to_main/createDictionaryList.cjs.map +0 -1
  45. package/dist/cjs/transpiler/dictionary_to_main/index.cjs +0 -35
  46. package/dist/cjs/transpiler/dictionary_to_main/index.cjs.map +0 -1
  47. package/dist/cjs/transpiler/dictionary_to_type/createModuleAugmentation.cjs +0 -83
  48. package/dist/cjs/transpiler/dictionary_to_type/createModuleAugmentation.cjs.map +0 -1
  49. package/dist/cjs/transpiler/dictionary_to_type/createType.cjs +0 -122
  50. package/dist/cjs/transpiler/dictionary_to_type/createType.cjs.map +0 -1
  51. package/dist/cjs/transpiler/dictionary_to_type/index.cjs +0 -41
  52. package/dist/cjs/transpiler/dictionary_to_type/index.cjs.map +0 -1
  53. package/dist/cjs/transpiler/intlater_module_to_dictionary/extractNestedJSON.cjs +0 -50
  54. package/dist/cjs/transpiler/intlater_module_to_dictionary/extractNestedJSON.cjs.map +0 -1
  55. package/dist/cjs/transpiler/intlater_module_to_dictionary/index.cjs +0 -47
  56. package/dist/cjs/transpiler/intlater_module_to_dictionary/index.cjs.map +0 -1
  57. package/dist/cjs/transpiler/intlater_module_to_dictionary/processModule.cjs +0 -70
  58. package/dist/cjs/transpiler/intlater_module_to_dictionary/processModule.cjs.map +0 -1
  59. package/dist/cjs/transpiler/intlater_module_to_dictionary/transpileBundledCode.cjs +0 -112
  60. package/dist/cjs/transpiler/intlater_module_to_dictionary/transpileBundledCode.cjs.map +0 -1
  61. package/dist/esm/scripts/bundle.d.mts +0 -7
  62. package/dist/esm/scripts/bundle.mjs +0 -35
  63. package/dist/esm/scripts/bundle.mjs.map +0 -1
  64. package/dist/esm/scripts/index.d.mts +0 -3
  65. package/dist/esm/scripts/index.mjs +0 -3
  66. package/dist/esm/scripts/index.mjs.map +0 -1
  67. package/dist/esm/scripts/startServer.d.mts +0 -5
  68. package/dist/esm/scripts/startServer.mjs +0 -10
  69. package/dist/esm/scripts/startServer.mjs.map +0 -1
  70. package/dist/esm/transpiler/dictionary_to_main/createDictionaryList.d.mts +0 -6
  71. package/dist/esm/transpiler/dictionary_to_main/createDictionaryList.mjs +0 -52
  72. package/dist/esm/transpiler/dictionary_to_main/createDictionaryList.mjs.map +0 -1
  73. package/dist/esm/transpiler/dictionary_to_main/index.d.mts +0 -1
  74. package/dist/esm/transpiler/dictionary_to_main/index.mjs +0 -2
  75. package/dist/esm/transpiler/dictionary_to_main/index.mjs.map +0 -1
  76. package/dist/esm/transpiler/dictionary_to_type/createModuleAugmentation.d.mts +0 -7
  77. package/dist/esm/transpiler/dictionary_to_type/createModuleAugmentation.mjs +0 -43
  78. package/dist/esm/transpiler/dictionary_to_type/createModuleAugmentation.mjs.map +0 -1
  79. package/dist/esm/transpiler/dictionary_to_type/createType.d.mts +0 -42
  80. package/dist/esm/transpiler/dictionary_to_type/createType.mjs +0 -84
  81. package/dist/esm/transpiler/dictionary_to_type/createType.mjs.map +0 -1
  82. package/dist/esm/transpiler/dictionary_to_type/index.d.mts +0 -10
  83. package/dist/esm/transpiler/dictionary_to_type/index.mjs +0 -3
  84. package/dist/esm/transpiler/dictionary_to_type/index.mjs.map +0 -1
  85. package/dist/esm/transpiler/intlater_module_to_dictionary/extractNestedJSON.d.mts +0 -44
  86. package/dist/esm/transpiler/intlater_module_to_dictionary/extractNestedJSON.mjs +0 -19
  87. package/dist/esm/transpiler/intlater_module_to_dictionary/extractNestedJSON.mjs.map +0 -1
  88. package/dist/esm/transpiler/intlater_module_to_dictionary/index.d.mts +0 -4
  89. package/dist/esm/transpiler/intlater_module_to_dictionary/index.mjs +0 -4
  90. package/dist/esm/transpiler/intlater_module_to_dictionary/index.mjs.map +0 -1
  91. package/dist/esm/transpiler/intlater_module_to_dictionary/processModule.d.mts +0 -10
  92. package/dist/esm/transpiler/intlater_module_to_dictionary/processModule.mjs +0 -39
  93. package/dist/esm/transpiler/intlater_module_to_dictionary/processModule.mjs.map +0 -1
  94. package/dist/esm/transpiler/intlater_module_to_dictionary/transpileBundledCode.d.mts +0 -8
  95. package/dist/esm/transpiler/intlater_module_to_dictionary/transpileBundledCode.mjs +0 -70
  96. package/dist/esm/transpiler/intlater_module_to_dictionary/transpileBundledCode.mjs.map +0 -1
  97. package/src/scripts/bundle.ts +0 -44
  98. package/src/scripts/index.ts +0 -2
  99. package/src/scripts/startServer.ts +0 -14
  100. package/src/transpiler/dictionary_to_main/createDictionaryList.ts +0 -65
  101. package/src/transpiler/dictionary_to_main/index.ts +0 -1
  102. package/src/transpiler/dictionary_to_type/createModuleAugmentation.ts +0 -70
  103. package/src/transpiler/dictionary_to_type/createType.ts +0 -140
  104. package/src/transpiler/dictionary_to_type/index.ts +0 -2
  105. package/src/transpiler/intlater_module_to_dictionary/extractNestedJSON.ts +0 -60
  106. package/src/transpiler/intlater_module_to_dictionary/index.ts +0 -3
  107. package/src/transpiler/intlater_module_to_dictionary/processModule.ts +0 -69
  108. package/src/transpiler/intlater_module_to_dictionary/transpileBundledCode.ts +0 -107
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack.config.ts"],"sourcesContent":["import { join } from 'path';\nimport { getConfiguration } from '@intlayer/config';\nimport { sync } from 'glob';\nimport type { Configuration as WebPackConfiguration } from 'webpack';\nimport type { Configuration as DevServerConfiguration } from 'webpack-dev-server';\nimport { getFileHash } from './utils';\nimport { IntLayerPlugin } from './webpack-plugin';\n\nconst { content } = getConfiguration({\n verbose: true,\n});\nconst { bundleDir, bundleFileExtension, watchedFilesPatternWithPath } = content;\n\nconst getEntry = (): Record<string, string> =>\n sync(watchedFilesPatternWithPath).reduce(\n (obj, el) => {\n const hash = getFileHash(el);\n\n obj[hash] = el;\n return obj;\n },\n {} as Record<string, string>\n );\n\n// For web interface\nexport const devServerConfig: DevServerConfiguration = {\n // Enable hot module replacement\n hot: true,\n // Open the browser\n open: false,\n liveReload: false,\n\n // Enable compression\n compress: true,\n\n // History API fallback\n historyApiFallback: false,\n\n // Host and port\n host: 'localhost',\n port: 8080,\n\n watchFiles: './src/', // watchedFilesPatternWithPath,\n\n devMiddleware: {\n // Enable write to disk to reuse the output\n writeToDisk: true,\n },\n\n // Content base\n static: {\n directory: bundleDir,\n },\n};\n\nexport const webpackConfig: WebPackConfiguration = {\n // Define the environment mode (development or production)\n mode: 'production', // or 'production'\n // Entry point of the application\n target: 'node', // Specifies the target environment\n\n entry: getEntry,\n output: {\n clean: true, // Clean the output directory before emit\n library: 'IntlLayerContent',\n libraryTarget: 'umd',\n filename: `[name]${bundleFileExtension}`,\n path: bundleDir,\n },\n\n cache: false,\n\n // devtool: 'source-map',\n\n // stats: {\n // preset: 'errors-only',\n // warnings: false,\n // },\n ignoreWarnings: [/./],\n resolve: {\n // Resolve TypeScript, JavaScript and JSON files\n extensions: ['.ts', '.js', '.json', '.wasm', '.ts', '.tsx', '.mjs', '.cjs'],\n modules: [\n // To find the loader module\n join(__dirname, '..', 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', 'intlayer-cli', 'node_modules'), // Or via another project by importing intlayer\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n resolveLoader: {\n // Configure how Webpack finds `loader` modules.\n modules: [\n // To find the loader module\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', '@intlayer/webpack', 'node_modules'), // Or via another project by importing @intlayer/webpack\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n // roots: [\n // join(process.cwd()), // Project context\n // join(process.cwd(), '@intlayer/webpack'), // Or via CLI in another project\n // join(process.cwd(), 'intlayer', '@intlayer/webpack'), // Or via CLI in another project\n // ],\n },\n\n module: {\n rules: [\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n // Use esbuild to compile JavaScript & TypeScript\n {\n // Match `.js`, `.jsx`, `.ts` or `.tsx` files\n test: /\\.[jt]sx?$/,\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n\n // JSON files are supported natively by Webpack 5, no specific loader required\n ],\n },\n devServer: devServerConfig,\n\n plugins: [\n new IntLayerPlugin(),\n // new HotModuleReplacementPlugin()\n ],\n};\n\nexport default webpackConfig;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,oBAAiC;AACjC,kBAAqB;AAGrB,mBAA4B;AAC5B,4BAA+B;AAE/B,MAAM,EAAE,QAAQ,QAAI,gCAAiB;AAAA,EACnC,SAAS;AACX,CAAC;AACD,MAAM,EAAE,WAAW,qBAAqB,4BAA4B,IAAI;AAExE,MAAM,WAAW,UACf,kBAAK,2BAA2B,EAAE;AAAA,EAChC,CAAC,KAAK,OAAO;AACX,UAAM,WAAO,0BAAY,EAAE;AAE3B,QAAI,IAAI,IAAI;AACZ,WAAO;AAAA,EACT;AAAA,EACA,CAAC;AACH;AAGK,MAAM,kBAA0C;AAAA;AAAA,EAErD,KAAK;AAAA;AAAA,EAEL,MAAM;AAAA,EACN,YAAY;AAAA;AAAA,EAGZ,UAAU;AAAA;AAAA,EAGV,oBAAoB;AAAA;AAAA,EAGpB,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,YAAY;AAAA;AAAA,EAEZ,eAAe;AAAA;AAAA,IAEb,aAAa;AAAA,EACf;AAAA;AAAA,EAGA,QAAQ;AAAA,IACN,WAAW;AAAA,EACb;AACF;AAEO,MAAM,gBAAsC;AAAA;AAAA,EAEjD,MAAM;AAAA;AAAA;AAAA,EAEN,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,OAAO;AAAA;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,UAAU,SAAS,mBAAmB;AAAA,IACtC,MAAM;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,gBAAgB,CAAC,GAAG;AAAA,EACpB,SAAS;AAAA;AAAA,IAEP,YAAY,CAAC,OAAO,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ,MAAM;AAAA,IAC1E,SAAS;AAAA;AAAA,UAEP,kBAAK,WAAW,MAAM,cAAc;AAAA;AAAA,UACpC,kBAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,UAClC,kBAAK,QAAQ,IAAI,GAAG,gBAAgB,gBAAgB,cAAc;AAAA;AAAA,UAClE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AAAA;AAAA,IAEb,SAAS;AAAA;AAAA,UAEP,kBAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,UAClC,kBAAK,QAAQ,IAAI,GAAG,gBAAgB,qBAAqB,cAAc;AAAA;AAAA,UACvE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMF;AAAA,EAEA,QAAQ;AAAA,IACN,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA;AAAA,MAEA;AAAA;AAAA,QAEE,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,UAEP,QAAQ;AAAA,QACV;AAAA,MACF;AAAA;AAAA,IAGF;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EAEX,SAAS;AAAA,IACP,IAAI,qCAAe;AAAA;AAAA,EAErB;AACF;AAEA,IAAO,yBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../src/webpack.config.ts"],"sourcesContent":["import { join } from 'path';\nimport { getConfiguration } from '@intlayer/config';\nimport type { Configuration as WebPackConfiguration } from 'webpack';\nimport type { Configuration as DevServerConfiguration } from 'webpack-dev-server';\nimport { getEntries } from './getEntries';\nimport { defineDirname } from './utils';\nimport { IntLayerPlugin } from './webpack-plugin';\n\nconst { content } = getConfiguration({\n verbose: false,\n});\nconst { fileExtensions } = content;\n\n/**\n * Set the __dirname global variable to make the config work in both ESM and CJS environments\n */\ndefineDirname();\n\n// For web interface\nexport const devServerConfig: DevServerConfiguration = {\n // Enable hot module replacement\n hot: true,\n // Open the browser\n open: false,\n liveReload: false,\n\n // Enable compression\n compress: true,\n\n // History API fallback\n historyApiFallback: false,\n\n // Host and port\n host: 'localhost',\n port: 8080,\n\n watchFiles: './src/', // watchedFilesPatternWithPath,\n\n devMiddleware: {\n // Enable write to disk to reuse the output\n writeToDisk: true,\n },\n\n // Content base\n static: {},\n};\n\nexport const webpackConfig: WebPackConfiguration = {\n // Define the environment mode (development or production)\n mode: 'production', // or 'production'\n // Entry point of the application\n target: 'node', // Specifies the target environment\n\n entry: getEntries,\n output: {\n clean: true, // Clean the output directory before emit\n library: 'IntlLayerContent',\n libraryTarget: 'umd',\n filename: `[name].bundle.js`,\n },\n\n cache: false,\n\n devtool: 'source-map',\n\n // stats: {\n // preset: 'errors-only',\n // warnings: false,\n // },\n ignoreWarnings: [/./],\n resolve: {\n // Resolve TypeScript, JavaScript and JSON files\n extensions: ['.ts', '.js', '.json', '.wasm', '.ts', '.tsx', '.mjs', '.cjs'],\n modules: [\n // To find the loader module\n join(globalThis.__dirname, '..', 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', 'intlayer-cli', 'node_modules'), // Or via another project by importing intlayer\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n resolveLoader: {\n // Configure how Webpack finds `loader` modules.\n modules: [\n // To find the loader module\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', '@intlayer/webpack', 'node_modules'), // Or via another project by importing @intlayer/webpack\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n module: {\n rules: [\n {\n // Rule for .content.ts files\n test: new RegExp(`(${fileExtensions.join('|')})$`),\n use: [\n {\n // Transpile with esbuild-loader\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n // {\n // // Custom loader to process the transpiled code\n // loader: resolve('./intlayer-loader'),\n // },\n ],\n },\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n // Use esbuild to compile JavaScript & TypeScript\n {\n // Match `.js`, `.jsx`, `.ts` or `.tsx` files\n test: /\\.(jsx|js|ts|tsx|mjs|cjs)?$/,\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n\n // JSON files are supported natively by Webpack 5, no specific loader required\n ],\n },\n devServer: devServerConfig,\n\n plugins: [\n new IntLayerPlugin(),\n // new HotModuleReplacementPlugin()\n ],\n};\n\nexport default webpackConfig;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,oBAAiC;AAGjC,wBAA2B;AAC3B,mBAA8B;AAC9B,4BAA+B;AAE/B,MAAM,EAAE,QAAQ,QAAI,gCAAiB;AAAA,EACnC,SAAS;AACX,CAAC;AACD,MAAM,EAAE,eAAe,IAAI;AAAA,IAK3B,4BAAc;AAGP,MAAM,kBAA0C;AAAA;AAAA,EAErD,KAAK;AAAA;AAAA,EAEL,MAAM;AAAA,EACN,YAAY;AAAA;AAAA,EAGZ,UAAU;AAAA;AAAA,EAGV,oBAAoB;AAAA;AAAA,EAGpB,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,YAAY;AAAA;AAAA,EAEZ,eAAe;AAAA;AAAA,IAEb,aAAa;AAAA,EACf;AAAA;AAAA,EAGA,QAAQ,CAAC;AACX;AAEO,MAAM,gBAAsC;AAAA;AAAA,EAEjD,MAAM;AAAA;AAAA;AAAA,EAEN,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,OAAO;AAAA;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO;AAAA,EAEP,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,gBAAgB,CAAC,GAAG;AAAA,EACpB,SAAS;AAAA;AAAA,IAEP,YAAY,CAAC,OAAO,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ,MAAM;AAAA,IAC1E,SAAS;AAAA;AAAA,UAEP,kBAAK,WAAW,WAAW,MAAM,cAAc;AAAA;AAAA,UAC/C,kBAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,UAClC,kBAAK,QAAQ,IAAI,GAAG,gBAAgB,gBAAgB,cAAc;AAAA;AAAA,UAClE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AAAA;AAAA,IAEb,SAAS;AAAA;AAAA,UAEP,kBAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,UAClC,kBAAK,QAAQ,IAAI,GAAG,gBAAgB,qBAAqB,cAAc;AAAA;AAAA,UACvE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,OAAO;AAAA,MACL;AAAA;AAAA,QAEE,MAAM,IAAI,OAAO,IAAI,eAAe,KAAK,GAAG,CAAC,IAAI;AAAA,QACjD,KAAK;AAAA,UACH;AAAA;AAAA,YAEE,QAAQ;AAAA,YACR,SAAS;AAAA;AAAA,cAEP,QAAQ;AAAA,YACV;AAAA,UACF;AAAA;AAAA;AAAA;AAAA;AAAA,QAKF;AAAA,MACF;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA;AAAA,MAEA;AAAA;AAAA,QAEE,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,UAEP,QAAQ;AAAA,QACV;AAAA,MACF;AAAA;AAAA,IAGF;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EAEX,SAAS;AAAA,IACP,IAAI,qCAAe;AAAA;AAAA,EAErB;AACF;AAEA,IAAO,yBAAQ;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { Configuration as Configuration$1 } from 'webpack';
2
+ import { Configuration } from 'webpack-dev-server';
3
+
4
+ declare const devServerConfig: Configuration;
5
+ declare const webpackConfig: Configuration$1;
6
+
7
+ export { webpackConfig as default, devServerConfig, webpackConfig };
@@ -0,0 +1,5 @@
1
+ import { EntryObject } from 'webpack';
2
+
3
+ declare const getEntries: () => EntryObject;
4
+
5
+ export { getEntries };
@@ -0,0 +1,17 @@
1
+ import { getConfiguration } from "@intlayer/config";
2
+ import { sync } from "glob";
3
+ import { getFileHash } from './utils.mjs';
4
+ const { content } = getConfiguration();
5
+ const { watchedFilesPatternWithPath } = content;
6
+ const getEntries = () => sync(watchedFilesPatternWithPath).reduce((obj, el) => {
7
+ const hash = getFileHash(el);
8
+ obj[`intlayer-content/${hash}`] = {
9
+ import: el,
10
+ dependOn: void 0
11
+ };
12
+ return obj;
13
+ }, {});
14
+ export {
15
+ getEntries
16
+ };
17
+ //# sourceMappingURL=getEntries.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/getEntries.ts"],"sourcesContent":["import { getConfiguration } from '@intlayer/config';\nimport { sync } from 'glob';\nimport type { EntryObject } from 'webpack';\nimport { getFileHash } from './utils';\n\nconst { content } = getConfiguration();\nconst { watchedFilesPatternWithPath } = content;\n\nexport const getEntries = (): EntryObject =>\n sync(watchedFilesPatternWithPath).reduce((obj, el) => {\n const hash = getFileHash(el);\n\n obj[`intlayer-content/${hash}`] = {\n import: el,\n dependOn: undefined,\n };\n\n return obj;\n }, {} as EntryObject);\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,YAAY;AAErB,SAAS,mBAAmB;AAE5B,MAAM,EAAE,QAAQ,IAAI,iBAAiB;AACrC,MAAM,EAAE,4BAA4B,IAAI;AAEjC,MAAM,aAAa,MACxB,KAAK,2BAA2B,EAAE,OAAO,CAAC,KAAK,OAAO;AACpD,QAAM,OAAO,YAAY,EAAE;AAE3B,MAAI,oBAAoB,IAAI,EAAE,IAAI;AAAA,IAChC,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAEA,SAAO;AACT,GAAG,CAAC,CAAgB;","names":[]}
@@ -1,9 +1,4 @@
1
- export { startServer } from "./scripts/startServer.mjs";
2
- export { bundle, watch } from "./scripts/bundle.mjs";
3
- export { IntLayerPlugin } from "./webpack-plugin.mjs";
4
- export {
5
- devServerConfig,
6
- default as webpackConfig,
7
- } from "./webpack.config.mjs";
8
- import "webpack";
9
- import "webpack-dev-server";
1
+ export { IntLayerPlugin } from './webpack-plugin.mjs';
2
+ export { devServerConfig, default as webpackConfig } from './webpack.config.mjs';
3
+ import 'webpack';
4
+ import 'webpack-dev-server';
@@ -1,12 +1,8 @@
1
- import { bundle, startServer, watch } from "./scripts/index.mjs";
2
- import { IntLayerPlugin } from "./webpack-plugin.mjs";
3
- import { devServerConfig, webpackConfig } from "./webpack.config.mjs";
1
+ import { IntLayerPlugin } from './webpack-plugin.mjs';
2
+ import { devServerConfig, webpackConfig } from './webpack.config.mjs';
4
3
  export {
5
4
  IntLayerPlugin,
6
- bundle,
7
5
  devServerConfig,
8
- startServer,
9
- watch,
10
- webpackConfig,
6
+ webpackConfig
11
7
  };
12
- //# sourceMappingURL=index.mjs.map
8
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["import { bundle, startServer, watch } from './scripts/index';\nimport { IntLayerPlugin } from './webpack-plugin';\nimport { devServerConfig, webpackConfig } from './webpack.config';\n\nexport {\n bundle,\n watch,\n startServer,\n devServerConfig,\n webpackConfig,\n IntLayerPlugin,\n};\n"],"mappings":"AAAA,SAAS,QAAQ,aAAa,aAAa;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB,qBAAqB;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export { IntLayerPlugin } from './webpack-plugin';\nexport { devServerConfig, webpackConfig } from './webpack.config';\n"],"mappings":"AAAA,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB,qBAAqB;","names":[]}
@@ -1,4 +1,7 @@
1
+ /**
2
+ * Set the __dirname global variable to make the config work in both ESM and CJS environments
3
+ */
4
+ declare const defineDirname: () => void;
1
5
  declare const getFileHash: (filePath: string) => string;
2
- declare const transformToCamelCase: (string: string) => string;
3
6
 
4
- export { getFileHash, transformToCamelCase };
7
+ export { defineDirname, getFileHash };
@@ -1,20 +1,18 @@
1
- import { SHA3, enc } from "crypto-js";
1
+ import path from "path";
2
+ import { fileURLToPath } from "url";
3
+ import crypto from "crypto-js";
4
+ const defineDirname = () => {
5
+ const isESModule = typeof import.meta.url === "string";
6
+ const filename = isESModule ? fileURLToPath(import.meta.url) : require("url").pathToFileURL(__filename).toString();
7
+ globalThis.__filename = globalThis.__filename ?? filename;
8
+ globalThis.__dirname = globalThis.__dirname ?? path.dirname(__filename);
9
+ };
2
10
  const getFileHash = (filePath) => {
3
- const hash = SHA3(filePath);
4
- return hash
5
- .toString(enc.Base64)
6
- .replace(/[^A-Z\d]/gi, "")
7
- .substring(0, 20);
11
+ const hash = crypto.SHA3(filePath);
12
+ return hash.toString(crypto.enc.Base64).replace(/[^A-Z\d]/gi, "").substring(0, 20);
8
13
  };
9
- const transformToCamelCase = (string) => {
10
- const words = string.split(/[\s\-_]+/);
11
- const camelCasedWords = words.map((word, index) => {
12
- if (index === 0) {
13
- return word[0].toUpperCase() + word.slice(1);
14
- }
15
- return word.charAt(0).toUpperCase() + word.slice(1);
16
- });
17
- return camelCasedWords.join("");
14
+ export {
15
+ defineDirname,
16
+ getFileHash
18
17
  };
19
- export { getFileHash, transformToCamelCase };
20
- //# sourceMappingURL=utils.mjs.map
18
+ //# sourceMappingURL=utils.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import { SHA3, enc } from 'crypto-js';\n\nexport const getFileHash = (filePath: string) => {\n const hash = SHA3(filePath);\n\n return hash\n .toString(enc.Base64)\n .replace(/[^A-Z\\d]/gi, '')\n .substring(0, 20);\n};\n\nexport const transformToCamelCase = (string: string): string => {\n // Split the string into words using a regex that finds spaces, hyphens, and underscores\n const words = string.split(/[\\s\\-_]+/);\n\n // Transform each word except the first to have its first letter uppercase\n const camelCasedWords = words.map((word, index) => {\n if (index === 0) {\n return word[0].toUpperCase() + word.slice(1);\n }\n return word.charAt(0).toUpperCase() + word.slice(1);\n });\n\n // Join the words back together\n return camelCasedWords.join('');\n};\n"],"mappings":"AAAA,SAAS,MAAM,WAAW;AAEnB,MAAM,cAAc,CAAC,aAAqB;AAC/C,QAAM,OAAO,KAAK,QAAQ;AAE1B,SAAO,KACJ,SAAS,IAAI,MAAM,EACnB,QAAQ,cAAc,EAAE,EACxB,UAAU,GAAG,EAAE;AACpB;AAEO,MAAM,uBAAuB,CAAC,WAA2B;AAE9D,QAAM,QAAQ,OAAO,MAAM,UAAU;AAGrC,QAAM,kBAAkB,MAAM,IAAI,CAAC,MAAM,UAAU;AACjD,QAAI,UAAU,GAAG;AACf,aAAO,KAAK,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAAA,IAC7C;AACA,WAAO,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC;AAAA,EACpD,CAAC;AAGD,SAAO,gBAAgB,KAAK,EAAE;AAChC;","names":[]}
1
+ {"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\nimport crypto from 'crypto-js';\n\n/**\n * Set the __dirname global variable to make the config work in both ESM and CJS environments\n */\nexport const defineDirname = () => {\n const isESModule = typeof import.meta.url === 'string';\n\n const filename = isESModule\n ? fileURLToPath(import.meta.url)\n : require('url').pathToFileURL(__filename).toString();\n\n globalThis.__filename = globalThis.__filename ?? filename;\n globalThis.__dirname = globalThis.__dirname ?? path.dirname(__filename);\n};\n\nexport const getFileHash = (filePath: string) => {\n const hash = crypto.SHA3(filePath);\n\n return hash\n .toString(crypto.enc.Base64)\n .replace(/[^A-Z\\d]/gi, '')\n .substring(0, 20);\n};\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAC9B,OAAO,YAAY;AAKZ,MAAM,gBAAgB,MAAM;AACjC,QAAM,aAAa,OAAO,YAAY,QAAQ;AAE9C,QAAM,WAAW,aACb,cAAc,YAAY,GAAG,IAC7B,QAAQ,KAAK,EAAE,cAAc,UAAU,EAAE,SAAS;AAEtD,aAAW,aAAa,WAAW,cAAc;AACjD,aAAW,YAAY,WAAW,aAAa,KAAK,QAAQ,UAAU;AACxE;AAEO,MAAM,cAAc,CAAC,aAAqB;AAC/C,QAAM,OAAO,OAAO,KAAK,QAAQ;AAEjC,SAAO,KACJ,SAAS,OAAO,IAAI,MAAM,EAC1B,QAAQ,cAAc,EAAE,EACxB,UAAU,GAAG,EAAE;AACpB;","names":[]}
@@ -1,15 +1,5 @@
1
- import { Compiler } from "webpack";
2
-
3
1
  declare class IntLayerPlugin {
4
- private managedFiles;
5
- private updatedFiles;
6
- private addedFiles;
7
- constructor();
8
- initDictionaries(): Promise<void>;
9
- processFilesChanges(): Promise<void>;
10
- processNewFiles(): Promise<void>;
11
- detectFileAddedOrRemoved(): Promise<void>;
12
- apply(compiler: Compiler): void;
2
+ apply(): void;
13
3
  }
14
4
 
15
5
  export { IntLayerPlugin };
@@ -1,145 +1,11 @@
1
- import { relative, resolve } from "path";
2
- import { getConfiguration } from "@intlayer/config";
3
- import { sync } from "glob";
4
- import { DynamicEntryPlugin } from "webpack";
5
- import { createDictionaryList } from "./transpiler/dictionary_to_main/createDictionaryList.mjs";
6
- import { createModuleAugmentation } from "./transpiler/dictionary_to_type/createModuleAugmentation.mjs";
7
- import { createTypes } from "./transpiler/dictionary_to_type/createType.mjs";
8
- import { transpileBundledCode } from "./transpiler/intlater_module_to_dictionary/transpileBundledCode.mjs";
9
- import { getFileHash } from "./utils.mjs";
10
- const getRelativePath = (filePath) => relative(baseDir, filePath);
11
- const getBundledFilePathFromIntlayerModule = (filePath) => {
12
- const hash = getFileHash(filePath);
13
- return `${bundleDir}/${hash}${bundleFileExtension}`;
14
- };
15
- const { content } = getConfiguration();
16
- const { bundleDir, baseDir, bundleFileExtension, watchedFilesPatternWithPath } =
17
- content;
1
+ import { watch } from "@intlayer/chokidar";
2
+ const persistent = process.env.NODE_ENV === "development";
18
3
  class IntLayerPlugin {
19
- managedFiles;
20
- updatedFiles;
21
- addedFiles;
22
- constructor() {
23
- this.managedFiles = /* @__PURE__ */ new Set();
24
- this.updatedFiles = /* @__PURE__ */ new Set();
25
- this.addedFiles = /* @__PURE__ */ new Set();
26
- }
27
- // function to initialize the dictionaries
28
- async initDictionaries() {
29
- const outputFiles = [...this.managedFiles].map((file) =>
30
- resolve(bundleDir, file)
31
- );
32
- const dictionaries = (await transpileBundledCode(outputFiles)) ?? [];
33
- console.info(
34
- `Dictionaries:
35
- ${dictionaries.map(getRelativePath).join("\n")}`
36
- );
37
- console.info("Building TypeScript types...");
38
- createTypes(dictionaries);
39
- console.info("Building type index...");
40
- createModuleAugmentation();
41
- console.info("Building main...");
42
- createDictionaryList();
43
- }
44
- // function to process when intlayer module files content are changed
45
- async processFilesChanges() {
46
- const dictionaries =
47
- (await transpileBundledCode([...this.updatedFiles])) ?? [];
48
- console.info(
49
- `Updated dictionaries:
50
- ${dictionaries.map(getRelativePath).join("\n")}`
51
- );
52
- console.info("Updating TypeScript types...");
53
- createTypes(dictionaries);
54
- this.updatedFiles.clear();
55
- }
56
- // function to process when new intlayer module is detected
57
- async processNewFiles() {
58
- const dictionaries =
59
- (await transpileBundledCode([...this.addedFiles])) ?? [];
60
- console.info(
61
- `New dictionaries:
62
- ${dictionaries.map(getRelativePath).join("\n")}`
63
- );
64
- console.info("Building TypeScript types...");
65
- createTypes(dictionaries);
66
- console.info("Building type index...");
67
- createModuleAugmentation();
68
- console.info("Building main...");
69
- createDictionaryList();
70
- this.managedFiles = /* @__PURE__ */ new Set([
71
- ...this.managedFiles,
72
- ...this.addedFiles,
73
- ]);
74
- this.addedFiles.clear();
75
- }
76
- async detectFileAddedOrRemoved() {
77
- const filesFound = [];
78
- for (const pattern of watchedFilesPatternWithPath) {
79
- sync(pattern).map((file) => filesFound.push(file));
80
- }
81
- const newFiles = new Set(
82
- filesFound.filter((x) => !this.managedFiles.has(x))
83
- );
84
- const removedFiles = new Set(
85
- [...this.managedFiles].filter((x) => !filesFound.includes(x))
86
- );
87
- if (
88
- // Check if there is new files
89
- newFiles.size > 0
90
- ) {
91
- console.info("New files:", [...newFiles]);
92
- this.addedFiles = newFiles;
93
- await this.processNewFiles();
94
- }
95
- if (
96
- // Check if there is removed files
97
- removedFiles.size > 0
98
- ) {
99
- console.info("Removed files:", [...removedFiles]);
100
- this.managedFiles = new Set(
101
- [...this.managedFiles].filter((x) => !removedFiles.has(x))
102
- );
103
- }
104
- if (this.updatedFiles.size > 0) {
105
- await this.processFilesChanges();
106
- }
107
- }
108
- apply(compiler) {
109
- compiler.hooks.entryOption.tap("EntryOptionPlugin", (context, entry) => {
110
- if (typeof entry === "function") {
111
- new DynamicEntryPlugin(context, entry).apply(compiler);
112
- }
113
- return true;
114
- });
115
- compiler.hooks.afterEmit.tapAsync(
116
- "IntLayerPlugin - Process dictionaries",
117
- async (compilation, callback) => {
118
- const currentEmitFiles = new Set(Object.keys(compilation.assets));
119
- if (
120
- // Check if this first load
121
- !this.managedFiles.size
122
- ) {
123
- this.managedFiles = currentEmitFiles;
124
- await this.initDictionaries();
125
- }
126
- await this.detectFileAddedOrRemoved();
127
- callback();
128
- }
129
- );
130
- compiler.hooks.watchRun.tap(
131
- "IntLayerPlugin - Change detection",
132
- (compilation) => {
133
- if (compilation.modifiedFiles) {
134
- const updatedFiles = Array.from(compilation.modifiedFiles);
135
- const outputFileNames = updatedFiles.map(
136
- getBundledFilePathFromIntlayerModule
137
- );
138
- this.updatedFiles = new Set(outputFileNames);
139
- }
140
- }
141
- );
4
+ apply() {
5
+ watch({ persistent });
142
6
  }
143
7
  }
144
- export { IntLayerPlugin };
145
- //# sourceMappingURL=webpack-plugin.mjs.map
8
+ export {
9
+ IntLayerPlugin
10
+ };
11
+ //# sourceMappingURL=webpack-plugin.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack-plugin.ts"],"sourcesContent":["import { relative, resolve } from 'path';\nimport { getConfiguration } from '@intlayer/config';\nimport { sync } from 'glob';\nimport { DynamicEntryPlugin, type Compiler } from 'webpack';\nimport { createDictionaryList } from './transpiler/dictionary_to_main/createDictionaryList';\nimport { createModuleAugmentation } from './transpiler/dictionary_to_type/createModuleAugmentation';\nimport { createTypes } from './transpiler/dictionary_to_type/createType';\nimport { transpileBundledCode } from './transpiler/intlater_module_to_dictionary/transpileBundledCode';\nimport { getFileHash } from './utils';\n\nconst getRelativePath = (filePath: string) => relative(baseDir, filePath);\n\nconst getBundledFilePathFromIntlayerModule = (filePath: string): string => {\n const hash = getFileHash(filePath);\n\n return `${bundleDir}/${hash}${bundleFileExtension}`;\n};\n\nconst { content } = getConfiguration();\nconst { bundleDir, baseDir, bundleFileExtension, watchedFilesPatternWithPath } =\n content;\n\nexport class IntLayerPlugin {\n private managedFiles: Set<string>;\n private updatedFiles: Set<string>;\n private addedFiles: Set<string>;\n\n constructor() {\n this.managedFiles = new Set();\n this.updatedFiles = new Set();\n this.addedFiles = new Set();\n }\n\n // function to initialize the dictionaries\n public async initDictionaries() {\n const outputFiles = [...this.managedFiles].map((file) =>\n resolve(bundleDir, file)\n );\n\n const dictionaries = (await transpileBundledCode(outputFiles)) ?? [];\n\n console.info(\n `Dictionaries: \\n ${dictionaries.map(getRelativePath).join('\\n')}`\n );\n\n console.info('Building TypeScript types...');\n createTypes(dictionaries);\n\n console.info('Building type index...');\n createModuleAugmentation();\n\n console.info('Building main...');\n createDictionaryList();\n }\n\n // function to process when intlayer module files content are changed\n public async processFilesChanges() {\n const dictionaries =\n (await transpileBundledCode([...this.updatedFiles])) ?? [];\n\n console.info(\n `Updated dictionaries: \\n ${dictionaries.map(getRelativePath).join('\\n')}`\n );\n\n console.info('Updating TypeScript types...');\n createTypes(dictionaries);\n\n this.updatedFiles.clear();\n }\n\n // function to process when new intlayer module is detected\n public async processNewFiles() {\n const dictionaries =\n (await transpileBundledCode([...this.addedFiles])) ?? [];\n\n console.info(\n `New dictionaries: \\n ${dictionaries.map(getRelativePath).join('\\n')}`\n );\n\n console.info('Building TypeScript types...');\n createTypes(dictionaries);\n\n console.info('Building type index...');\n createModuleAugmentation();\n\n console.info('Building main...');\n createDictionaryList();\n\n this.managedFiles = new Set([...this.managedFiles, ...this.addedFiles]);\n this.addedFiles.clear();\n }\n\n public async detectFileAddedOrRemoved() {\n const filesFound: string[] = [];\n\n for (const pattern of watchedFilesPatternWithPath) {\n sync(pattern).map((file) => filesFound.push(file));\n }\n\n // Detect new files by comparing with files emitted in previous compilation\n const newFiles = new Set(\n filesFound.filter((x) => !this.managedFiles.has(x))\n );\n\n const removedFiles = new Set(\n [...this.managedFiles].filter((x) => !filesFound.includes(x))\n );\n\n if (\n // Check if there is new files\n newFiles.size > 0\n ) {\n console.info('New files:', [...newFiles]);\n\n this.addedFiles = newFiles;\n\n await this.processNewFiles();\n }\n\n if (\n // Check if there is removed files\n removedFiles.size > 0\n ) {\n console.info('Removed files:', [...removedFiles]);\n\n this.managedFiles = new Set(\n [...this.managedFiles].filter((x) => !removedFiles.has(x))\n );\n }\n\n // After the compilation, transpile the changed files if any\n if (this.updatedFiles.size > 0) {\n await this.processFilesChanges();\n }\n }\n\n apply(compiler: Compiler): void {\n compiler.hooks.entryOption.tap('EntryOptionPlugin', (context, entry) => {\n if (typeof entry === 'function') {\n // DynamicEntryPlugin is used to add entries at runtime when files are created, updated or deleted\n new DynamicEntryPlugin(context, entry).apply(compiler);\n }\n\n return true;\n });\n\n compiler.hooks.afterEmit.tapAsync(\n 'IntLayerPlugin - Process dictionaries',\n async (compilation, callback) => {\n // Get a set of files that will be emitted in this compilation\n const currentEmitFiles = new Set(Object.keys(compilation.assets));\n\n if (\n // Check if this first load\n !this.managedFiles.size\n ) {\n // Update previousEmitFiles for the next compilation\n this.managedFiles = currentEmitFiles;\n\n await this.initDictionaries();\n }\n\n await this.detectFileAddedOrRemoved();\n\n callback();\n }\n );\n\n // Detect modified files on watch mode\n compiler.hooks.watchRun.tap(\n 'IntLayerPlugin - Change detection',\n (compilation) => {\n if (compilation.modifiedFiles) {\n const updatedFiles = Array.from(compilation.modifiedFiles);\n\n const outputFileNames = updatedFiles.map(\n getBundledFilePathFromIntlayerModule\n );\n\n this.updatedFiles = new Set(outputFileNames);\n }\n }\n );\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/webpack-plugin.ts"],"sourcesContent":["import { watch } from '@intlayer/chokidar';\n\n// Watch mode or on time build\nconst persistent = process.env.NODE_ENV === 'development';\n\nexport class IntLayerPlugin {\n apply(): void {\n watch({ persistent });\n }\n}\n"],"mappings":"AAAA,SAAS,aAAa;AAGtB,MAAM,aAAa,QAAQ,IAAI,aAAa;AAErC,MAAM,eAAe;AAAA,EAC1B,QAAc;AACZ,UAAM,EAAE,WAAW,CAAC;AAAA,EACtB;AACF;","names":[]}
@@ -1,5 +1,5 @@
1
- import { Configuration as Configuration$1 } from "webpack";
2
- import { Configuration } from "webpack-dev-server";
1
+ import { Configuration as Configuration$1 } from 'webpack';
2
+ import { Configuration } from 'webpack-dev-server';
3
3
 
4
4
  declare const devServerConfig: Configuration;
5
5
  declare const webpackConfig: Configuration$1;
@@ -1,18 +1,13 @@
1
1
  import { join } from "path";
2
2
  import { getConfiguration } from "@intlayer/config";
3
- import { sync } from "glob";
4
- import { getFileHash } from "./utils.mjs";
5
- import { IntLayerPlugin } from "./webpack-plugin.mjs";
3
+ import { getEntries } from './getEntries.mjs';
4
+ import { defineDirname } from './utils.mjs';
5
+ import { IntLayerPlugin } from './webpack-plugin.mjs';
6
6
  const { content } = getConfiguration({
7
- verbose: true,
7
+ verbose: false
8
8
  });
9
- const { bundleDir, bundleFileExtension, watchedFilesPatternWithPath } = content;
10
- const getEntry = () =>
11
- sync(watchedFilesPatternWithPath).reduce((obj, el) => {
12
- const hash = getFileHash(el);
13
- obj[hash] = el;
14
- return obj;
15
- }, {});
9
+ const { fileExtensions } = content;
10
+ defineDirname();
16
11
  const devServerConfig = {
17
12
  // Enable hot module replacement
18
13
  hot: true,
@@ -30,12 +25,10 @@ const devServerConfig = {
30
25
  // watchedFilesPatternWithPath,
31
26
  devMiddleware: {
32
27
  // Enable write to disk to reuse the output
33
- writeToDisk: true,
28
+ writeToDisk: true
34
29
  },
35
30
  // Content base
36
- static: {
37
- directory: bundleDir,
38
- },
31
+ static: {}
39
32
  };
40
33
  const webpackConfig = {
41
34
  // Define the environment mode (development or production)
@@ -44,17 +37,16 @@ const webpackConfig = {
44
37
  // Entry point of the application
45
38
  target: "node",
46
39
  // Specifies the target environment
47
- entry: getEntry,
40
+ entry: getEntries,
48
41
  output: {
49
42
  clean: true,
50
43
  // Clean the output directory before emit
51
44
  library: "IntlLayerContent",
52
45
  libraryTarget: "umd",
53
- filename: `[name]${bundleFileExtension}`,
54
- path: bundleDir,
46
+ filename: `[name].bundle.js`
55
47
  },
56
48
  cache: false,
57
- // devtool: 'source-map',
49
+ devtool: "source-map",
58
50
  // stats: {
59
51
  // preset: 'errors-only',
60
52
  // warnings: false,
@@ -65,7 +57,7 @@ const webpackConfig = {
65
57
  extensions: [".ts", ".js", ".json", ".wasm", ".ts", ".tsx", ".mjs", ".cjs"],
66
58
  modules: [
67
59
  // To find the loader module
68
- join(__dirname, "..", "node_modules"),
60
+ join(globalThis.__dirname, "..", "node_modules"),
69
61
  // In the project node_modules
70
62
  join(process.cwd(), "node_modules"),
71
63
  // In the project node_modules
@@ -78,9 +70,9 @@ const webpackConfig = {
78
70
  "node_modules",
79
71
  "@intlayer/webpack",
80
72
  "node_modules"
81
- ),
73
+ )
82
74
  // Or via another project by importing intlayer
83
- ],
75
+ ]
84
76
  },
85
77
  resolveLoader: {
86
78
  // Configure how Webpack finds `loader` modules.
@@ -97,40 +89,57 @@ const webpackConfig = {
97
89
  "node_modules",
98
90
  "@intlayer/webpack",
99
91
  "node_modules"
100
- ),
92
+ )
101
93
  // Or via another project by importing intlayer
102
- ],
103
- // roots: [
104
- // join(process.cwd()), // Project context
105
- // join(process.cwd(), '@intlayer/webpack'), // Or via CLI in another project
106
- // join(process.cwd(), 'intlayer', '@intlayer/webpack'), // Or via CLI in another project
107
- // ],
94
+ ]
108
95
  },
109
96
  module: {
110
97
  rules: [
98
+ {
99
+ // Rule for .content.ts files
100
+ test: new RegExp(`(${fileExtensions.join("|")})$`),
101
+ use: [
102
+ {
103
+ // Transpile with esbuild-loader
104
+ loader: "esbuild-loader",
105
+ options: {
106
+ // JavaScript version to compile to
107
+ target: "es2015"
108
+ }
109
+ }
110
+ // {
111
+ // // Custom loader to process the transpiled code
112
+ // loader: resolve('./intlayer-loader'),
113
+ // },
114
+ ]
115
+ },
111
116
  {
112
117
  test: /\.node$/,
113
- loader: "node-loader",
118
+ loader: "node-loader"
114
119
  },
115
120
  // Use esbuild to compile JavaScript & TypeScript
116
121
  {
117
122
  // Match `.js`, `.jsx`, `.ts` or `.tsx` files
118
- test: /\.[jt]sx?$/,
123
+ test: /\.(jsx|js|ts|tsx|mjs|cjs)?$/,
119
124
  loader: "esbuild-loader",
120
125
  options: {
121
126
  // JavaScript version to compile to
122
- target: "es2015",
123
- },
124
- },
127
+ target: "es2015"
128
+ }
129
+ }
125
130
  // JSON files are supported natively by Webpack 5, no specific loader required
126
- ],
131
+ ]
127
132
  },
128
133
  devServer: devServerConfig,
129
134
  plugins: [
130
- new IntLayerPlugin(),
135
+ new IntLayerPlugin()
131
136
  // new HotModuleReplacementPlugin()
132
- ],
137
+ ]
133
138
  };
134
139
  var webpack_config_default = webpackConfig;
135
- export { webpack_config_default as default, devServerConfig, webpackConfig };
136
- //# sourceMappingURL=webpack.config.mjs.map
140
+ export {
141
+ webpack_config_default as default,
142
+ devServerConfig,
143
+ webpackConfig
144
+ };
145
+ //# sourceMappingURL=webpack.config.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack.config.ts"],"sourcesContent":["import { join } from 'path';\nimport { getConfiguration } from '@intlayer/config';\nimport { sync } from 'glob';\nimport type { Configuration as WebPackConfiguration } from 'webpack';\nimport type { Configuration as DevServerConfiguration } from 'webpack-dev-server';\nimport { getFileHash } from './utils';\nimport { IntLayerPlugin } from './webpack-plugin';\n\nconst { content } = getConfiguration({\n verbose: true,\n});\nconst { bundleDir, bundleFileExtension, watchedFilesPatternWithPath } = content;\n\nconst getEntry = (): Record<string, string> =>\n sync(watchedFilesPatternWithPath).reduce(\n (obj, el) => {\n const hash = getFileHash(el);\n\n obj[hash] = el;\n return obj;\n },\n {} as Record<string, string>\n );\n\n// For web interface\nexport const devServerConfig: DevServerConfiguration = {\n // Enable hot module replacement\n hot: true,\n // Open the browser\n open: false,\n liveReload: false,\n\n // Enable compression\n compress: true,\n\n // History API fallback\n historyApiFallback: false,\n\n // Host and port\n host: 'localhost',\n port: 8080,\n\n watchFiles: './src/', // watchedFilesPatternWithPath,\n\n devMiddleware: {\n // Enable write to disk to reuse the output\n writeToDisk: true,\n },\n\n // Content base\n static: {\n directory: bundleDir,\n },\n};\n\nexport const webpackConfig: WebPackConfiguration = {\n // Define the environment mode (development or production)\n mode: 'production', // or 'production'\n // Entry point of the application\n target: 'node', // Specifies the target environment\n\n entry: getEntry,\n output: {\n clean: true, // Clean the output directory before emit\n library: 'IntlLayerContent',\n libraryTarget: 'umd',\n filename: `[name]${bundleFileExtension}`,\n path: bundleDir,\n },\n\n cache: false,\n\n // devtool: 'source-map',\n\n // stats: {\n // preset: 'errors-only',\n // warnings: false,\n // },\n ignoreWarnings: [/./],\n resolve: {\n // Resolve TypeScript, JavaScript and JSON files\n extensions: ['.ts', '.js', '.json', '.wasm', '.ts', '.tsx', '.mjs', '.cjs'],\n modules: [\n // To find the loader module\n join(__dirname, '..', 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', 'intlayer-cli', 'node_modules'), // Or via another project by importing intlayer\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n resolveLoader: {\n // Configure how Webpack finds `loader` modules.\n modules: [\n // To find the loader module\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', '@intlayer/webpack', 'node_modules'), // Or via another project by importing @intlayer/webpack\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n // roots: [\n // join(process.cwd()), // Project context\n // join(process.cwd(), '@intlayer/webpack'), // Or via CLI in another project\n // join(process.cwd(), 'intlayer', '@intlayer/webpack'), // Or via CLI in another project\n // ],\n },\n\n module: {\n rules: [\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n // Use esbuild to compile JavaScript & TypeScript\n {\n // Match `.js`, `.jsx`, `.ts` or `.tsx` files\n test: /\\.[jt]sx?$/,\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n\n // JSON files are supported natively by Webpack 5, no specific loader required\n ],\n },\n devServer: devServerConfig,\n\n plugins: [\n new IntLayerPlugin(),\n // new HotModuleReplacementPlugin()\n ],\n};\n\nexport default webpackConfig;\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,wBAAwB;AACjC,SAAS,YAAY;AAGrB,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAE/B,MAAM,EAAE,QAAQ,IAAI,iBAAiB;AAAA,EACnC,SAAS;AACX,CAAC;AACD,MAAM,EAAE,WAAW,qBAAqB,4BAA4B,IAAI;AAExE,MAAM,WAAW,MACf,KAAK,2BAA2B,EAAE;AAAA,EAChC,CAAC,KAAK,OAAO;AACX,UAAM,OAAO,YAAY,EAAE;AAE3B,QAAI,IAAI,IAAI;AACZ,WAAO;AAAA,EACT;AAAA,EACA,CAAC;AACH;AAGK,MAAM,kBAA0C;AAAA;AAAA,EAErD,KAAK;AAAA;AAAA,EAEL,MAAM;AAAA,EACN,YAAY;AAAA;AAAA,EAGZ,UAAU;AAAA;AAAA,EAGV,oBAAoB;AAAA;AAAA,EAGpB,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,YAAY;AAAA;AAAA,EAEZ,eAAe;AAAA;AAAA,IAEb,aAAa;AAAA,EACf;AAAA;AAAA,EAGA,QAAQ;AAAA,IACN,WAAW;AAAA,EACb;AACF;AAEO,MAAM,gBAAsC;AAAA;AAAA,EAEjD,MAAM;AAAA;AAAA;AAAA,EAEN,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,OAAO;AAAA;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,UAAU,SAAS,mBAAmB;AAAA,IACtC,MAAM;AAAA,EACR;AAAA,EAEA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQP,gBAAgB,CAAC,GAAG;AAAA,EACpB,SAAS;AAAA;AAAA,IAEP,YAAY,CAAC,OAAO,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ,MAAM;AAAA,IAC1E,SAAS;AAAA;AAAA,MAEP,KAAK,WAAW,MAAM,cAAc;AAAA;AAAA,MACpC,KAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,MAClC,KAAK,QAAQ,IAAI,GAAG,gBAAgB,gBAAgB,cAAc;AAAA;AAAA,MAClE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AAAA;AAAA,IAEb,SAAS;AAAA;AAAA,MAEP,KAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,MAClC,KAAK,QAAQ,IAAI,GAAG,gBAAgB,qBAAqB,cAAc;AAAA;AAAA,MACvE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMF;AAAA,EAEA,QAAQ;AAAA,IACN,OAAO;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA;AAAA,MAEA;AAAA;AAAA,QAEE,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,UAEP,QAAQ;AAAA,QACV;AAAA,MACF;AAAA;AAAA,IAGF;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EAEX,SAAS;AAAA,IACP,IAAI,eAAe;AAAA;AAAA,EAErB;AACF;AAEA,IAAO,yBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../src/webpack.config.ts"],"sourcesContent":["import { join } from 'path';\nimport { getConfiguration } from '@intlayer/config';\nimport type { Configuration as WebPackConfiguration } from 'webpack';\nimport type { Configuration as DevServerConfiguration } from 'webpack-dev-server';\nimport { getEntries } from './getEntries';\nimport { defineDirname } from './utils';\nimport { IntLayerPlugin } from './webpack-plugin';\n\nconst { content } = getConfiguration({\n verbose: false,\n});\nconst { fileExtensions } = content;\n\n/**\n * Set the __dirname global variable to make the config work in both ESM and CJS environments\n */\ndefineDirname();\n\n// For web interface\nexport const devServerConfig: DevServerConfiguration = {\n // Enable hot module replacement\n hot: true,\n // Open the browser\n open: false,\n liveReload: false,\n\n // Enable compression\n compress: true,\n\n // History API fallback\n historyApiFallback: false,\n\n // Host and port\n host: 'localhost',\n port: 8080,\n\n watchFiles: './src/', // watchedFilesPatternWithPath,\n\n devMiddleware: {\n // Enable write to disk to reuse the output\n writeToDisk: true,\n },\n\n // Content base\n static: {},\n};\n\nexport const webpackConfig: WebPackConfiguration = {\n // Define the environment mode (development or production)\n mode: 'production', // or 'production'\n // Entry point of the application\n target: 'node', // Specifies the target environment\n\n entry: getEntries,\n output: {\n clean: true, // Clean the output directory before emit\n library: 'IntlLayerContent',\n libraryTarget: 'umd',\n filename: `[name].bundle.js`,\n },\n\n cache: false,\n\n devtool: 'source-map',\n\n // stats: {\n // preset: 'errors-only',\n // warnings: false,\n // },\n ignoreWarnings: [/./],\n resolve: {\n // Resolve TypeScript, JavaScript and JSON files\n extensions: ['.ts', '.js', '.json', '.wasm', '.ts', '.tsx', '.mjs', '.cjs'],\n modules: [\n // To find the loader module\n join(globalThis.__dirname, '..', 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', 'intlayer-cli', 'node_modules'), // Or via another project by importing intlayer\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n resolveLoader: {\n // Configure how Webpack finds `loader` modules.\n modules: [\n // To find the loader module\n join(process.cwd(), 'node_modules'), // In the project node_modules\n join(process.cwd(), 'node_modules', '@intlayer/webpack', 'node_modules'), // Or via another project by importing @intlayer/webpack\n join(\n process.cwd(),\n 'node_modules',\n 'intlayer-cli',\n 'node_modules',\n '@intlayer/webpack',\n 'node_modules'\n ), // Or via another project by importing intlayer\n ],\n },\n\n module: {\n rules: [\n {\n // Rule for .content.ts files\n test: new RegExp(`(${fileExtensions.join('|')})$`),\n use: [\n {\n // Transpile with esbuild-loader\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n // {\n // // Custom loader to process the transpiled code\n // loader: resolve('./intlayer-loader'),\n // },\n ],\n },\n {\n test: /\\.node$/,\n loader: 'node-loader',\n },\n // Use esbuild to compile JavaScript & TypeScript\n {\n // Match `.js`, `.jsx`, `.ts` or `.tsx` files\n test: /\\.(jsx|js|ts|tsx|mjs|cjs)?$/,\n loader: 'esbuild-loader',\n options: {\n // JavaScript version to compile to\n target: 'es2015',\n },\n },\n\n // JSON files are supported natively by Webpack 5, no specific loader required\n ],\n },\n devServer: devServerConfig,\n\n plugins: [\n new IntLayerPlugin(),\n // new HotModuleReplacementPlugin()\n ],\n};\n\nexport default webpackConfig;\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,wBAAwB;AAGjC,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAE/B,MAAM,EAAE,QAAQ,IAAI,iBAAiB;AAAA,EACnC,SAAS;AACX,CAAC;AACD,MAAM,EAAE,eAAe,IAAI;AAK3B,cAAc;AAGP,MAAM,kBAA0C;AAAA;AAAA,EAErD,KAAK;AAAA;AAAA,EAEL,MAAM;AAAA,EACN,YAAY;AAAA;AAAA,EAGZ,UAAU;AAAA;AAAA,EAGV,oBAAoB;AAAA;AAAA,EAGpB,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,YAAY;AAAA;AAAA,EAEZ,eAAe;AAAA;AAAA,IAEb,aAAa;AAAA,EACf;AAAA;AAAA,EAGA,QAAQ,CAAC;AACX;AAEO,MAAM,gBAAsC;AAAA;AAAA,EAEjD,MAAM;AAAA;AAAA;AAAA,EAEN,QAAQ;AAAA;AAAA,EAER,OAAO;AAAA,EACP,QAAQ;AAAA,IACN,OAAO;AAAA;AAAA,IACP,SAAS;AAAA,IACT,eAAe;AAAA,IACf,UAAU;AAAA,EACZ;AAAA,EAEA,OAAO;AAAA,EAEP,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,gBAAgB,CAAC,GAAG;AAAA,EACpB,SAAS;AAAA;AAAA,IAEP,YAAY,CAAC,OAAO,OAAO,SAAS,SAAS,OAAO,QAAQ,QAAQ,MAAM;AAAA,IAC1E,SAAS;AAAA;AAAA,MAEP,KAAK,WAAW,WAAW,MAAM,cAAc;AAAA;AAAA,MAC/C,KAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,MAClC,KAAK,QAAQ,IAAI,GAAG,gBAAgB,gBAAgB,cAAc;AAAA;AAAA,MAClE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,eAAe;AAAA;AAAA,IAEb,SAAS;AAAA;AAAA,MAEP,KAAK,QAAQ,IAAI,GAAG,cAAc;AAAA;AAAA,MAClC,KAAK,QAAQ,IAAI,GAAG,gBAAgB,qBAAqB,cAAc;AAAA;AAAA,MACvE;AAAA,QACE,QAAQ,IAAI;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,QAAQ;AAAA,IACN,OAAO;AAAA,MACL;AAAA;AAAA,QAEE,MAAM,IAAI,OAAO,IAAI,eAAe,KAAK,GAAG,CAAC,IAAI;AAAA,QACjD,KAAK;AAAA,UACH;AAAA;AAAA,YAEE,QAAQ;AAAA,YACR,SAAS;AAAA;AAAA,cAEP,QAAQ;AAAA,YACV;AAAA,UACF;AAAA;AAAA;AAAA;AAAA;AAAA,QAKF;AAAA,MACF;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,QAAQ;AAAA,MACV;AAAA;AAAA,MAEA;AAAA;AAAA,QAEE,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,SAAS;AAAA;AAAA,UAEP,QAAQ;AAAA,QACV;AAAA,MACF;AAAA;AAAA,IAGF;AAAA,EACF;AAAA,EACA,WAAW;AAAA,EAEX,SAAS;AAAA,IACP,IAAI,eAAe;AAAA;AAAA,EAErB;AACF;AAEA,IAAO,yBAAQ;","names":[]}