@vocab/webpack 1.2.12 → 1.2.13-fix-messageformat-import-20250923004826
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-nOFOJqeH.js +30 -0
- package/dist/chunk-name-CBgqhApm.js +14 -0
- package/dist/chunk-name-CBgqhApm.js.map +1 -0
- package/dist/chunk-name-D6UZ3rB7.mjs +8 -0
- package/dist/chunk-name-D6UZ3rB7.mjs.map +1 -0
- package/dist/chunk-name.d.mts +5 -0
- package/dist/chunk-name.d.ts +5 -0
- package/dist/chunk-name.js +3 -0
- package/dist/chunk-name.mjs +3 -0
- package/dist/index.d.mts +19 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +30 -0
- package/dist/index.mjs.map +1 -0
- package/dist/loader.d.mts +9 -0
- package/dist/loader.d.ts +8 -0
- package/dist/loader.js +99 -0
- package/dist/loader.js.map +1 -0
- package/dist/loader.mjs +94 -0
- package/dist/loader.mjs.map +1 -0
- package/dist/logger-CoUhqRrx.mjs +14 -0
- package/dist/logger-CoUhqRrx.mjs.map +1 -0
- package/dist/logger-vmXVx1Ky.js +16 -0
- package/dist/logger-vmXVx1Ky.js.map +1 -0
- package/dist/web.d.mts +8 -0
- package/dist/web.d.ts +8 -0
- package/dist/web.js +31 -0
- package/dist/web.js.map +1 -0
- package/dist/web.mjs +22 -0
- package/dist/web.mjs.map +1 -0
- package/package.json +17 -27
- package/README.md +0 -827
- package/chunk-name/dist/vocab-webpack-chunk-name.cjs.d.ts +0 -2
- package/chunk-name/dist/vocab-webpack-chunk-name.cjs.dev.js +0 -9
- package/chunk-name/dist/vocab-webpack-chunk-name.cjs.js +0 -7
- package/chunk-name/dist/vocab-webpack-chunk-name.cjs.prod.js +0 -9
- package/chunk-name/dist/vocab-webpack-chunk-name.esm.js +0 -5
- package/chunk-name/package.json +0 -4
- package/dist/declarations/src/chunk-name.d.ts +0 -1
- package/dist/declarations/src/index.d.ts +0 -12
- package/dist/declarations/src/loader.d.ts +0 -5
- package/dist/declarations/src/web.d.ts +0 -3
- package/dist/logger-018d2c78.cjs.prod.js +0 -12
- package/dist/logger-c5869e3f.esm.js +0 -6
- package/dist/logger-ebb09632.cjs.dev.js +0 -12
- package/dist/vocab-webpack.cjs.d.ts +0 -2
- package/dist/vocab-webpack.cjs.dev.js +0 -43
- package/dist/vocab-webpack.cjs.js +0 -7
- package/dist/vocab-webpack.cjs.prod.js +0 -43
- package/dist/vocab-webpack.esm.js +0 -38
- package/loader/dist/vocab-webpack-loader.cjs.d.ts +0 -3
- package/loader/dist/vocab-webpack-loader.cjs.dev.js +0 -137
- package/loader/dist/vocab-webpack-loader.cjs.js +0 -7
- package/loader/dist/vocab-webpack-loader.cjs.prod.js +0 -137
- package/loader/dist/vocab-webpack-loader.esm.js +0 -109
- package/loader/package.json +0 -4
- package/web/dist/vocab-webpack-web.cjs.d.ts +0 -2
- package/web/dist/vocab-webpack-web.cjs.dev.js +0 -34
- package/web/dist/vocab-webpack-web.cjs.js +0 -7
- package/web/dist/vocab-webpack-web.cjs.prod.js +0 -34
- package/web/dist/vocab-webpack-web.esm.js +0 -26
- package/web/package.json +0 -4
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "../../dist/declarations/src/chunk-name.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWItd2VicGFjay1jaHVuay1uYW1lLmNqcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vZGlzdC9kZWNsYXJhdGlvbnMvc3JjL2NodW5rLW5hbWUuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSJ9
|
package/chunk-name/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function getChunkName(lang: string): string;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type UserConfig } from '@vocab/core';
|
|
2
|
-
import type { Compiler } from 'webpack';
|
|
3
|
-
interface UserOptions extends Partial<UserConfig> {
|
|
4
|
-
configFile?: string;
|
|
5
|
-
}
|
|
6
|
-
export declare const compiledVocabFileFilter: RegExp;
|
|
7
|
-
export declare class VocabWebpackPlugin {
|
|
8
|
-
options: UserConfig;
|
|
9
|
-
constructor({ configFile, ...rest }?: UserOptions);
|
|
10
|
-
apply(compiler: Compiler): void;
|
|
11
|
-
}
|
|
12
|
-
export {};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type UserConfig } from '@vocab/core';
|
|
2
|
-
import type { LoaderContext as WebpackLoaderContext } from 'webpack';
|
|
3
|
-
type LoaderContext = WebpackLoaderContext<UserConfig>;
|
|
4
|
-
export default function vocabLoader(this: LoaderContext, source: string): Promise<void>;
|
|
5
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('picocolors');
|
|
4
|
-
var debug = require('debug');
|
|
5
|
-
|
|
6
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var debug__default = /*#__PURE__*/_interopDefault(debug);
|
|
9
|
-
|
|
10
|
-
const trace = debug__default["default"](`vocab:webpack`);
|
|
11
|
-
|
|
12
|
-
exports.trace = trace;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
require('picocolors');
|
|
4
|
-
var debug = require('debug');
|
|
5
|
-
|
|
6
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
7
|
-
|
|
8
|
-
var debug__default = /*#__PURE__*/_interopDefault(debug);
|
|
9
|
-
|
|
10
|
-
const trace = debug__default["default"](`vocab:webpack`);
|
|
11
|
-
|
|
12
|
-
exports.trace = trace;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "./declarations/src/index.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWItd2VicGFjay5janMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4vZGVjbGFyYXRpb25zL3NyYy9pbmRleC5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBIn0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var core = require('@vocab/core');
|
|
6
|
-
var logger = require('./logger-ebb09632.cjs.dev.js');
|
|
7
|
-
require('picocolors');
|
|
8
|
-
require('debug');
|
|
9
|
-
|
|
10
|
-
const compiledVocabFileFilter = /\.vocab[\\/]index\.(?:ts|js|cjs|mjs)$/;
|
|
11
|
-
class VocabWebpackPlugin {
|
|
12
|
-
constructor({
|
|
13
|
-
configFile,
|
|
14
|
-
...rest
|
|
15
|
-
} = {}) {
|
|
16
|
-
logger.trace(`Creating Vocab plugin${configFile ? ` with config file ${configFile}` : ''}`);
|
|
17
|
-
this.options = {
|
|
18
|
-
...core.resolveConfigSync(configFile),
|
|
19
|
-
...rest
|
|
20
|
-
};
|
|
21
|
-
core.validateConfig(this.options);
|
|
22
|
-
}
|
|
23
|
-
apply(compiler) {
|
|
24
|
-
logger.trace(`Applying plugin: ${compiler.options.name} (${compiler.options.target})`);
|
|
25
|
-
if (!compiler.options.module) {
|
|
26
|
-
// @ts-expect-error Support for older versions of webpack that may not have module defined at this stage
|
|
27
|
-
compiler.options.module = {
|
|
28
|
-
rules: []
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
if (!compiler.options.module.rules) {
|
|
32
|
-
compiler.options.module.rules = [];
|
|
33
|
-
}
|
|
34
|
-
compiler.options.module.rules.splice(0, 0, {
|
|
35
|
-
test: compiledVocabFileFilter,
|
|
36
|
-
loader: require.resolve('@vocab/webpack/loader'),
|
|
37
|
-
options: this.options
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
exports.VocabWebpackPlugin = VocabWebpackPlugin;
|
|
43
|
-
exports.compiledVocabFileFilter = compiledVocabFileFilter;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var core = require('@vocab/core');
|
|
6
|
-
var logger = require('./logger-018d2c78.cjs.prod.js');
|
|
7
|
-
require('picocolors');
|
|
8
|
-
require('debug');
|
|
9
|
-
|
|
10
|
-
const compiledVocabFileFilter = /\.vocab[\\/]index\.(?:ts|js|cjs|mjs)$/;
|
|
11
|
-
class VocabWebpackPlugin {
|
|
12
|
-
constructor({
|
|
13
|
-
configFile,
|
|
14
|
-
...rest
|
|
15
|
-
} = {}) {
|
|
16
|
-
logger.trace(`Creating Vocab plugin${configFile ? ` with config file ${configFile}` : ''}`);
|
|
17
|
-
this.options = {
|
|
18
|
-
...core.resolveConfigSync(configFile),
|
|
19
|
-
...rest
|
|
20
|
-
};
|
|
21
|
-
core.validateConfig(this.options);
|
|
22
|
-
}
|
|
23
|
-
apply(compiler) {
|
|
24
|
-
logger.trace(`Applying plugin: ${compiler.options.name} (${compiler.options.target})`);
|
|
25
|
-
if (!compiler.options.module) {
|
|
26
|
-
// @ts-expect-error Support for older versions of webpack that may not have module defined at this stage
|
|
27
|
-
compiler.options.module = {
|
|
28
|
-
rules: []
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
if (!compiler.options.module.rules) {
|
|
32
|
-
compiler.options.module.rules = [];
|
|
33
|
-
}
|
|
34
|
-
compiler.options.module.rules.splice(0, 0, {
|
|
35
|
-
test: compiledVocabFileFilter,
|
|
36
|
-
loader: require.resolve('@vocab/webpack/loader'),
|
|
37
|
-
options: this.options
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
exports.VocabWebpackPlugin = VocabWebpackPlugin;
|
|
43
|
-
exports.compiledVocabFileFilter = compiledVocabFileFilter;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { resolveConfigSync, validateConfig } from '@vocab/core';
|
|
2
|
-
import { t as trace } from './logger-c5869e3f.esm.js';
|
|
3
|
-
import 'picocolors';
|
|
4
|
-
import 'debug';
|
|
5
|
-
|
|
6
|
-
const compiledVocabFileFilter = /\.vocab[\\/]index\.(?:ts|js|cjs|mjs)$/;
|
|
7
|
-
class VocabWebpackPlugin {
|
|
8
|
-
constructor({
|
|
9
|
-
configFile,
|
|
10
|
-
...rest
|
|
11
|
-
} = {}) {
|
|
12
|
-
trace(`Creating Vocab plugin${configFile ? ` with config file ${configFile}` : ''}`);
|
|
13
|
-
this.options = {
|
|
14
|
-
...resolveConfigSync(configFile),
|
|
15
|
-
...rest
|
|
16
|
-
};
|
|
17
|
-
validateConfig(this.options);
|
|
18
|
-
}
|
|
19
|
-
apply(compiler) {
|
|
20
|
-
trace(`Applying plugin: ${compiler.options.name} (${compiler.options.target})`);
|
|
21
|
-
if (!compiler.options.module) {
|
|
22
|
-
// @ts-expect-error Support for older versions of webpack that may not have module defined at this stage
|
|
23
|
-
compiler.options.module = {
|
|
24
|
-
rules: []
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
if (!compiler.options.module.rules) {
|
|
28
|
-
compiler.options.module.rules = [];
|
|
29
|
-
}
|
|
30
|
-
compiler.options.module.rules.splice(0, 0, {
|
|
31
|
-
test: compiledVocabFileFilter,
|
|
32
|
-
loader: require.resolve('@vocab/webpack/loader'),
|
|
33
|
-
options: this.options
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export { VocabWebpackPlugin, compiledVocabFileFilter };
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from "../../dist/declarations/src/loader.js";
|
|
2
|
-
export { default } from "../../dist/declarations/src/loader.js";
|
|
3
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWItd2VicGFjay1sb2FkZXIuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kaXN0L2RlY2xhcmF0aW9ucy9zcmMvbG9hZGVyLmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var path = require('path');
|
|
6
|
-
var core = require('@vocab/core');
|
|
7
|
-
var cjsModuleLexer = require('cjs-module-lexer');
|
|
8
|
-
var esModuleLexer = require('es-module-lexer');
|
|
9
|
-
var chunkName_dist_vocabWebpackChunkName = require('../../chunk-name/dist/vocab-webpack-chunk-name.cjs.dev.js');
|
|
10
|
-
var logger = require('../../dist/logger-ebb09632.cjs.dev.js');
|
|
11
|
-
require('picocolors');
|
|
12
|
-
require('debug');
|
|
13
|
-
|
|
14
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
15
|
-
|
|
16
|
-
function _interopNamespace(e) {
|
|
17
|
-
if (e && e.__esModule) return e;
|
|
18
|
-
var n = Object.create(null);
|
|
19
|
-
if (e) {
|
|
20
|
-
Object.keys(e).forEach(function (k) {
|
|
21
|
-
if (k !== 'default') {
|
|
22
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
23
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () { return e[k]; }
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
n["default"] = e;
|
|
31
|
-
return Object.freeze(n);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
35
|
-
var cjsModuleLexer__namespace = /*#__PURE__*/_interopNamespace(cjsModuleLexer);
|
|
36
|
-
var esModuleLexer__namespace = /*#__PURE__*/_interopNamespace(esModuleLexer);
|
|
37
|
-
|
|
38
|
-
const trace = logger.trace.extend('loader');
|
|
39
|
-
|
|
40
|
-
// Resolve virtual-resource-loader dependency from current package
|
|
41
|
-
const virtualResourceLoader = require.resolve('virtual-resource-loader');
|
|
42
|
-
function createIdentifier(lang, resourcePath, loadedTranslation) {
|
|
43
|
-
var _loadedTranslation$la;
|
|
44
|
-
trace('Creating identifier for language', lang);
|
|
45
|
-
const languageTranslations = (_loadedTranslation$la = loadedTranslation.languages[lang]) !== null && _loadedTranslation$la !== void 0 ? _loadedTranslation$la : {};
|
|
46
|
-
const langJson = {};
|
|
47
|
-
for (const key of loadedTranslation.keys) {
|
|
48
|
-
langJson[key] = languageTranslations[key].message;
|
|
49
|
-
}
|
|
50
|
-
const base64 = Buffer.from(JSON.stringify(langJson), 'utf-8').toString('base64');
|
|
51
|
-
const unloader = `${virtualResourceLoader}?source=${encodeURIComponent(base64)}`;
|
|
52
|
-
const fileIdent = path__default["default"].basename(resourcePath, 'translations.json');
|
|
53
|
-
return `./${fileIdent}-${lang}-virtual.json!=!${unloader}!`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// reimplement `stringifyRequest` from loader-utils 2.x
|
|
57
|
-
// https://github.com/webpack/loader-utils/blob/master/CHANGELOG.md#300-2021-10-20
|
|
58
|
-
function stringifyRequest(request) {
|
|
59
|
-
return JSON.stringify(this.utils.contextify(this.context, request));
|
|
60
|
-
}
|
|
61
|
-
function renderLanguageLoaderAsync(resourcePath, loadedTranslation) {
|
|
62
|
-
return lang => {
|
|
63
|
-
const identifier = stringifyRequest.call(this, createIdentifier(lang, resourcePath, loadedTranslation));
|
|
64
|
-
return /* ts */`
|
|
65
|
-
createLanguage(
|
|
66
|
-
require.resolveWeak(${identifier}),
|
|
67
|
-
() => import(
|
|
68
|
-
/* webpackChunkName: ${JSON.stringify(chunkName_dist_vocabWebpackChunkName.getChunkName(lang))} */
|
|
69
|
-
${identifier}
|
|
70
|
-
)
|
|
71
|
-
)
|
|
72
|
-
`.trim();
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
function findExportNames(source, mode) {
|
|
76
|
-
if (mode === 'esm') {
|
|
77
|
-
const [, exports] = esModuleLexer__namespace.parse(source);
|
|
78
|
-
return exports;
|
|
79
|
-
}
|
|
80
|
-
const {
|
|
81
|
-
exports
|
|
82
|
-
} = cjsModuleLexer__namespace.parse(source);
|
|
83
|
-
return exports;
|
|
84
|
-
}
|
|
85
|
-
async function vocabLoader(source) {
|
|
86
|
-
trace(`Using vocab loader for ${this.resourcePath}`);
|
|
87
|
-
const callback = this.async();
|
|
88
|
-
if (!callback) {
|
|
89
|
-
throw new Error(`Webpack didn't provide an async callback`);
|
|
90
|
-
}
|
|
91
|
-
const config = this.getOptions();
|
|
92
|
-
const devJsonFilePath = core.getDevLanguageFileFromTsFile(this.resourcePath);
|
|
93
|
-
const loadedTranslation = core.loadTranslation({
|
|
94
|
-
filePath: devJsonFilePath,
|
|
95
|
-
fallbacks: 'all'
|
|
96
|
-
}, config);
|
|
97
|
-
const target = this.target;
|
|
98
|
-
if (target && target !== 'web') {
|
|
99
|
-
trace(`Why are you using the loader on ${target}?`);
|
|
100
|
-
callback(new Error('Called Vocab Loader with non-web target'));
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const renderLanguageLoader = renderLanguageLoaderAsync.call(this, devJsonFilePath, loadedTranslation);
|
|
104
|
-
const translations = /* ts */`
|
|
105
|
-
const translations = createTranslationFile({
|
|
106
|
-
${Object.keys(loadedTranslation.languages).map(lang => `${JSON.stringify(lang)}: ${renderLanguageLoader(lang)}`).join(',\n')}
|
|
107
|
-
});
|
|
108
|
-
`;
|
|
109
|
-
let result;
|
|
110
|
-
|
|
111
|
-
// this is necessary for the Web Assembly boot
|
|
112
|
-
await esModuleLexer__namespace.init;
|
|
113
|
-
const esmExports = findExportNames(source, 'esm');
|
|
114
|
-
if (esmExports.length > 0) {
|
|
115
|
-
const exportName = esmExports[0];
|
|
116
|
-
trace(`Found ESM export '${exportName.n}' in ${this.resourcePath}`);
|
|
117
|
-
result = /* ts */`
|
|
118
|
-
import { createLanguage, createTranslationFile } from '@vocab/webpack/${target}';
|
|
119
|
-
${translations}
|
|
120
|
-
export { translations as ${exportName.n} };
|
|
121
|
-
`;
|
|
122
|
-
} else {
|
|
123
|
-
// init needs to be called and waited upon
|
|
124
|
-
await cjsModuleLexer__namespace.init();
|
|
125
|
-
const exportName = findExportNames(source, 'cjs')[0];
|
|
126
|
-
trace(`Found CJS export '${exportName}' in ${this.resourcePath}`);
|
|
127
|
-
result = /* ts */`
|
|
128
|
-
const { createLanguage, createTranslationFile } = require('@vocab/webpack/${target}');
|
|
129
|
-
${translations}
|
|
130
|
-
exports.${exportName} = translations;
|
|
131
|
-
`;
|
|
132
|
-
}
|
|
133
|
-
trace('Created translation file', result);
|
|
134
|
-
callback(null, result);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
exports["default"] = vocabLoader;
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var path = require('path');
|
|
6
|
-
var core = require('@vocab/core');
|
|
7
|
-
var cjsModuleLexer = require('cjs-module-lexer');
|
|
8
|
-
var esModuleLexer = require('es-module-lexer');
|
|
9
|
-
var chunkName_dist_vocabWebpackChunkName = require('../../chunk-name/dist/vocab-webpack-chunk-name.cjs.prod.js');
|
|
10
|
-
var logger = require('../../dist/logger-018d2c78.cjs.prod.js');
|
|
11
|
-
require('picocolors');
|
|
12
|
-
require('debug');
|
|
13
|
-
|
|
14
|
-
function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
|
|
15
|
-
|
|
16
|
-
function _interopNamespace(e) {
|
|
17
|
-
if (e && e.__esModule) return e;
|
|
18
|
-
var n = Object.create(null);
|
|
19
|
-
if (e) {
|
|
20
|
-
Object.keys(e).forEach(function (k) {
|
|
21
|
-
if (k !== 'default') {
|
|
22
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
23
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () { return e[k]; }
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
n["default"] = e;
|
|
31
|
-
return Object.freeze(n);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
35
|
-
var cjsModuleLexer__namespace = /*#__PURE__*/_interopNamespace(cjsModuleLexer);
|
|
36
|
-
var esModuleLexer__namespace = /*#__PURE__*/_interopNamespace(esModuleLexer);
|
|
37
|
-
|
|
38
|
-
const trace = logger.trace.extend('loader');
|
|
39
|
-
|
|
40
|
-
// Resolve virtual-resource-loader dependency from current package
|
|
41
|
-
const virtualResourceLoader = require.resolve('virtual-resource-loader');
|
|
42
|
-
function createIdentifier(lang, resourcePath, loadedTranslation) {
|
|
43
|
-
var _loadedTranslation$la;
|
|
44
|
-
trace('Creating identifier for language', lang);
|
|
45
|
-
const languageTranslations = (_loadedTranslation$la = loadedTranslation.languages[lang]) !== null && _loadedTranslation$la !== void 0 ? _loadedTranslation$la : {};
|
|
46
|
-
const langJson = {};
|
|
47
|
-
for (const key of loadedTranslation.keys) {
|
|
48
|
-
langJson[key] = languageTranslations[key].message;
|
|
49
|
-
}
|
|
50
|
-
const base64 = Buffer.from(JSON.stringify(langJson), 'utf-8').toString('base64');
|
|
51
|
-
const unloader = `${virtualResourceLoader}?source=${encodeURIComponent(base64)}`;
|
|
52
|
-
const fileIdent = path__default["default"].basename(resourcePath, 'translations.json');
|
|
53
|
-
return `./${fileIdent}-${lang}-virtual.json!=!${unloader}!`;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// reimplement `stringifyRequest` from loader-utils 2.x
|
|
57
|
-
// https://github.com/webpack/loader-utils/blob/master/CHANGELOG.md#300-2021-10-20
|
|
58
|
-
function stringifyRequest(request) {
|
|
59
|
-
return JSON.stringify(this.utils.contextify(this.context, request));
|
|
60
|
-
}
|
|
61
|
-
function renderLanguageLoaderAsync(resourcePath, loadedTranslation) {
|
|
62
|
-
return lang => {
|
|
63
|
-
const identifier = stringifyRequest.call(this, createIdentifier(lang, resourcePath, loadedTranslation));
|
|
64
|
-
return /* ts */`
|
|
65
|
-
createLanguage(
|
|
66
|
-
require.resolveWeak(${identifier}),
|
|
67
|
-
() => import(
|
|
68
|
-
/* webpackChunkName: ${JSON.stringify(chunkName_dist_vocabWebpackChunkName.getChunkName(lang))} */
|
|
69
|
-
${identifier}
|
|
70
|
-
)
|
|
71
|
-
)
|
|
72
|
-
`.trim();
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
function findExportNames(source, mode) {
|
|
76
|
-
if (mode === 'esm') {
|
|
77
|
-
const [, exports] = esModuleLexer__namespace.parse(source);
|
|
78
|
-
return exports;
|
|
79
|
-
}
|
|
80
|
-
const {
|
|
81
|
-
exports
|
|
82
|
-
} = cjsModuleLexer__namespace.parse(source);
|
|
83
|
-
return exports;
|
|
84
|
-
}
|
|
85
|
-
async function vocabLoader(source) {
|
|
86
|
-
trace(`Using vocab loader for ${this.resourcePath}`);
|
|
87
|
-
const callback = this.async();
|
|
88
|
-
if (!callback) {
|
|
89
|
-
throw new Error(`Webpack didn't provide an async callback`);
|
|
90
|
-
}
|
|
91
|
-
const config = this.getOptions();
|
|
92
|
-
const devJsonFilePath = core.getDevLanguageFileFromTsFile(this.resourcePath);
|
|
93
|
-
const loadedTranslation = core.loadTranslation({
|
|
94
|
-
filePath: devJsonFilePath,
|
|
95
|
-
fallbacks: 'all'
|
|
96
|
-
}, config);
|
|
97
|
-
const target = this.target;
|
|
98
|
-
if (target && target !== 'web') {
|
|
99
|
-
trace(`Why are you using the loader on ${target}?`);
|
|
100
|
-
callback(new Error('Called Vocab Loader with non-web target'));
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
const renderLanguageLoader = renderLanguageLoaderAsync.call(this, devJsonFilePath, loadedTranslation);
|
|
104
|
-
const translations = /* ts */`
|
|
105
|
-
const translations = createTranslationFile({
|
|
106
|
-
${Object.keys(loadedTranslation.languages).map(lang => `${JSON.stringify(lang)}: ${renderLanguageLoader(lang)}`).join(',\n')}
|
|
107
|
-
});
|
|
108
|
-
`;
|
|
109
|
-
let result;
|
|
110
|
-
|
|
111
|
-
// this is necessary for the Web Assembly boot
|
|
112
|
-
await esModuleLexer__namespace.init;
|
|
113
|
-
const esmExports = findExportNames(source, 'esm');
|
|
114
|
-
if (esmExports.length > 0) {
|
|
115
|
-
const exportName = esmExports[0];
|
|
116
|
-
trace(`Found ESM export '${exportName.n}' in ${this.resourcePath}`);
|
|
117
|
-
result = /* ts */`
|
|
118
|
-
import { createLanguage, createTranslationFile } from '@vocab/webpack/${target}';
|
|
119
|
-
${translations}
|
|
120
|
-
export { translations as ${exportName.n} };
|
|
121
|
-
`;
|
|
122
|
-
} else {
|
|
123
|
-
// init needs to be called and waited upon
|
|
124
|
-
await cjsModuleLexer__namespace.init();
|
|
125
|
-
const exportName = findExportNames(source, 'cjs')[0];
|
|
126
|
-
trace(`Found CJS export '${exportName}' in ${this.resourcePath}`);
|
|
127
|
-
result = /* ts */`
|
|
128
|
-
const { createLanguage, createTranslationFile } = require('@vocab/webpack/${target}');
|
|
129
|
-
${translations}
|
|
130
|
-
exports.${exportName} = translations;
|
|
131
|
-
`;
|
|
132
|
-
}
|
|
133
|
-
trace('Created translation file', result);
|
|
134
|
-
callback(null, result);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
exports["default"] = vocabLoader;
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import path from 'path';
|
|
2
|
-
import { getDevLanguageFileFromTsFile, loadTranslation } from '@vocab/core';
|
|
3
|
-
import * as cjsModuleLexer from 'cjs-module-lexer';
|
|
4
|
-
import * as esModuleLexer from 'es-module-lexer';
|
|
5
|
-
import { getChunkName } from '../../chunk-name/dist/vocab-webpack-chunk-name.esm.js';
|
|
6
|
-
import { t as trace$1 } from '../../dist/logger-c5869e3f.esm.js';
|
|
7
|
-
import 'picocolors';
|
|
8
|
-
import 'debug';
|
|
9
|
-
|
|
10
|
-
const trace = trace$1.extend('loader');
|
|
11
|
-
|
|
12
|
-
// Resolve virtual-resource-loader dependency from current package
|
|
13
|
-
const virtualResourceLoader = require.resolve('virtual-resource-loader');
|
|
14
|
-
function createIdentifier(lang, resourcePath, loadedTranslation) {
|
|
15
|
-
var _loadedTranslation$la;
|
|
16
|
-
trace('Creating identifier for language', lang);
|
|
17
|
-
const languageTranslations = (_loadedTranslation$la = loadedTranslation.languages[lang]) !== null && _loadedTranslation$la !== void 0 ? _loadedTranslation$la : {};
|
|
18
|
-
const langJson = {};
|
|
19
|
-
for (const key of loadedTranslation.keys) {
|
|
20
|
-
langJson[key] = languageTranslations[key].message;
|
|
21
|
-
}
|
|
22
|
-
const base64 = Buffer.from(JSON.stringify(langJson), 'utf-8').toString('base64');
|
|
23
|
-
const unloader = `${virtualResourceLoader}?source=${encodeURIComponent(base64)}`;
|
|
24
|
-
const fileIdent = path.basename(resourcePath, 'translations.json');
|
|
25
|
-
return `./${fileIdent}-${lang}-virtual.json!=!${unloader}!`;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// reimplement `stringifyRequest` from loader-utils 2.x
|
|
29
|
-
// https://github.com/webpack/loader-utils/blob/master/CHANGELOG.md#300-2021-10-20
|
|
30
|
-
function stringifyRequest(request) {
|
|
31
|
-
return JSON.stringify(this.utils.contextify(this.context, request));
|
|
32
|
-
}
|
|
33
|
-
function renderLanguageLoaderAsync(resourcePath, loadedTranslation) {
|
|
34
|
-
return lang => {
|
|
35
|
-
const identifier = stringifyRequest.call(this, createIdentifier(lang, resourcePath, loadedTranslation));
|
|
36
|
-
return /* ts */`
|
|
37
|
-
createLanguage(
|
|
38
|
-
require.resolveWeak(${identifier}),
|
|
39
|
-
() => import(
|
|
40
|
-
/* webpackChunkName: ${JSON.stringify(getChunkName(lang))} */
|
|
41
|
-
${identifier}
|
|
42
|
-
)
|
|
43
|
-
)
|
|
44
|
-
`.trim();
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
function findExportNames(source, mode) {
|
|
48
|
-
if (mode === 'esm') {
|
|
49
|
-
const [, exports] = esModuleLexer.parse(source);
|
|
50
|
-
return exports;
|
|
51
|
-
}
|
|
52
|
-
const {
|
|
53
|
-
exports
|
|
54
|
-
} = cjsModuleLexer.parse(source);
|
|
55
|
-
return exports;
|
|
56
|
-
}
|
|
57
|
-
async function vocabLoader(source) {
|
|
58
|
-
trace(`Using vocab loader for ${this.resourcePath}`);
|
|
59
|
-
const callback = this.async();
|
|
60
|
-
if (!callback) {
|
|
61
|
-
throw new Error(`Webpack didn't provide an async callback`);
|
|
62
|
-
}
|
|
63
|
-
const config = this.getOptions();
|
|
64
|
-
const devJsonFilePath = getDevLanguageFileFromTsFile(this.resourcePath);
|
|
65
|
-
const loadedTranslation = loadTranslation({
|
|
66
|
-
filePath: devJsonFilePath,
|
|
67
|
-
fallbacks: 'all'
|
|
68
|
-
}, config);
|
|
69
|
-
const target = this.target;
|
|
70
|
-
if (target && target !== 'web') {
|
|
71
|
-
trace(`Why are you using the loader on ${target}?`);
|
|
72
|
-
callback(new Error('Called Vocab Loader with non-web target'));
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
const renderLanguageLoader = renderLanguageLoaderAsync.call(this, devJsonFilePath, loadedTranslation);
|
|
76
|
-
const translations = /* ts */`
|
|
77
|
-
const translations = createTranslationFile({
|
|
78
|
-
${Object.keys(loadedTranslation.languages).map(lang => `${JSON.stringify(lang)}: ${renderLanguageLoader(lang)}`).join(',\n')}
|
|
79
|
-
});
|
|
80
|
-
`;
|
|
81
|
-
let result;
|
|
82
|
-
|
|
83
|
-
// this is necessary for the Web Assembly boot
|
|
84
|
-
await esModuleLexer.init;
|
|
85
|
-
const esmExports = findExportNames(source, 'esm');
|
|
86
|
-
if (esmExports.length > 0) {
|
|
87
|
-
const exportName = esmExports[0];
|
|
88
|
-
trace(`Found ESM export '${exportName.n}' in ${this.resourcePath}`);
|
|
89
|
-
result = /* ts */`
|
|
90
|
-
import { createLanguage, createTranslationFile } from '@vocab/webpack/${target}';
|
|
91
|
-
${translations}
|
|
92
|
-
export { translations as ${exportName.n} };
|
|
93
|
-
`;
|
|
94
|
-
} else {
|
|
95
|
-
// init needs to be called and waited upon
|
|
96
|
-
await cjsModuleLexer.init();
|
|
97
|
-
const exportName = findExportNames(source, 'cjs')[0];
|
|
98
|
-
trace(`Found CJS export '${exportName}' in ${this.resourcePath}`);
|
|
99
|
-
result = /* ts */`
|
|
100
|
-
const { createLanguage, createTranslationFile } = require('@vocab/webpack/${target}');
|
|
101
|
-
${translations}
|
|
102
|
-
exports.${exportName} = translations;
|
|
103
|
-
`;
|
|
104
|
-
}
|
|
105
|
-
trace('Created translation file', result);
|
|
106
|
-
callback(null, result);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export { vocabLoader as default };
|
package/loader/package.json
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from "../../dist/declarations/src/web.js";
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9jYWItd2VicGFjay13ZWIuY2pzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9kaXN0L2RlY2xhcmF0aW9ucy9zcmMvd2ViLmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEifQ==
|