@embeddable.com/sdk-core 3.4.1 → 3.5.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.
- package/lib/defineConfig.d.ts +1 -0
- package/lib/index.esm.js +67 -22
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +65 -20
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/cleanup.ts +1 -0
- package/src/defineConfig.ts +1 -0
- package/src/defineConfit.test.ts +77 -0
- package/src/dev.ts +4 -1
- package/src/generate.test.ts +115 -0
- package/src/generate.ts +44 -2
- package/src/rollbar.mjs +40 -23
- package/src/rollbar.test.ts +87 -0
- package/templates/component.tsx.template +1 -1
package/lib/index.js
CHANGED
|
@@ -11,13 +11,13 @@ var compiler = require('@stencil/core/compiler');
|
|
|
11
11
|
var os$1 = require('node:os');
|
|
12
12
|
var YAML = require('yaml');
|
|
13
13
|
var url$2 = require('node:url');
|
|
14
|
-
var path$2 = require('path');
|
|
15
14
|
var require$$4$1 = require('util');
|
|
16
15
|
var require$$1 = require('os');
|
|
17
16
|
var require$$3 = require('http');
|
|
18
17
|
var require$$4 = require('https');
|
|
19
18
|
var require$$0$1 = require('url');
|
|
20
19
|
var require$$2$1 = require('fs');
|
|
20
|
+
var path$2 = require('path');
|
|
21
21
|
var axios = require('axios');
|
|
22
22
|
var archiver = require('archiver');
|
|
23
23
|
var ws = require('ws');
|
|
@@ -458,6 +458,8 @@ async function createComponentDir(dir) {
|
|
|
458
458
|
const sorcery = require("sorcery");
|
|
459
459
|
const STYLE_IMPORTS_TOKEN = "{{STYLES_IMPORT}}";
|
|
460
460
|
const RENDER_IMPORT_TOKEN = "{{RENDER_IMPORT}}";
|
|
461
|
+
// stencil doesn't support dynamic component tag name, so we need to replace it manually
|
|
462
|
+
const COMPONENT_TAG_TOKEN = "replace-this-with-component-name";
|
|
461
463
|
var generate = async (ctx, pluginName) => {
|
|
462
464
|
await injectCSS(ctx, pluginName);
|
|
463
465
|
await injectBundleRender(ctx, pluginName);
|
|
@@ -476,9 +478,30 @@ async function injectCSS(ctx, pluginName) {
|
|
|
476
478
|
}
|
|
477
479
|
async function injectBundleRender(ctx, pluginName) {
|
|
478
480
|
const importStr = `import render from '../${ctx[pluginName].outputOptions.buildName}/${ctx[pluginName].outputOptions.fileName}';`;
|
|
479
|
-
|
|
481
|
+
let content = await fs__namespace.readFile(path__namespace.resolve(ctx.core.templatesDir, "component.tsx.template"), "utf8");
|
|
482
|
+
if (!!ctx.dev) {
|
|
483
|
+
content = content.replace(COMPONENT_TAG_TOKEN, "embeddable-component");
|
|
484
|
+
}
|
|
480
485
|
await fs__namespace.writeFile(path__namespace.resolve(ctx.client.componentDir, "component.tsx"), content.replace(RENDER_IMPORT_TOKEN, importStr));
|
|
481
486
|
}
|
|
487
|
+
async function addComponentTagName(filePath, bundleHash) {
|
|
488
|
+
// find entry file with a name *.entry.js
|
|
489
|
+
const entryFiles = await findFiles(path__namespace.dirname(filePath), /.*\.entry\.js/);
|
|
490
|
+
if (!entryFiles.length) {
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
const entryFileName = entryFiles[0];
|
|
494
|
+
const [entryFileContent, fileContent] = await Promise.all([
|
|
495
|
+
fs__namespace.readFile(entryFileName[1], "utf8"),
|
|
496
|
+
fs__namespace.readFile(filePath, "utf8"),
|
|
497
|
+
]);
|
|
498
|
+
const newFileContent = fileContent.replace(COMPONENT_TAG_TOKEN, `embeddable-component-${bundleHash}`);
|
|
499
|
+
const newEntryFileContent = entryFileContent.replace(COMPONENT_TAG_TOKEN.replaceAll("-", "_"), `embeddable_component_${bundleHash}`);
|
|
500
|
+
await Promise.all([
|
|
501
|
+
fs__namespace.writeFile(filePath, newFileContent),
|
|
502
|
+
fs__namespace.writeFile(entryFileName[1], newEntryFileContent),
|
|
503
|
+
]);
|
|
504
|
+
}
|
|
482
505
|
async function runStencil(ctx) {
|
|
483
506
|
var _a, _b, _c;
|
|
484
507
|
const logger = ((_a = ctx.dev) === null || _a === void 0 ? void 0 : _a.logger) || node.createNodeLogger({ process });
|
|
@@ -512,6 +535,8 @@ async function runStencil(ctx) {
|
|
|
512
535
|
const entryFileContent = await fs__namespace.readFile(entryFilePath, "utf8");
|
|
513
536
|
const fileHash = getContentHash(entryFileContent);
|
|
514
537
|
fileName = `embeddable-wrapper.esm-${fileHash}.js`;
|
|
538
|
+
ctx.client.bundleHash = fileHash;
|
|
539
|
+
await addComponentTagName(entryFilePath, ctx.client.bundleHash);
|
|
515
540
|
}
|
|
516
541
|
await fs__namespace.rename(entryFilePath, path__namespace.resolve(ctx.client.stencilBuild, fileName));
|
|
517
542
|
await compiler$1.destroy();
|
|
@@ -670,6 +695,7 @@ async function createManifest({ ctx, typesFileName, metaFileName, editorsMetaFil
|
|
|
670
695
|
metadata: {
|
|
671
696
|
nodeVersion: process.version,
|
|
672
697
|
platform: process.platform,
|
|
698
|
+
bundleHash: ctx.client.bundleHash,
|
|
673
699
|
sdkVersions,
|
|
674
700
|
packageManager,
|
|
675
701
|
packageManagerVersion,
|
|
@@ -20354,29 +20380,31 @@ const reportErrorToRollbar = async (error) => {
|
|
|
20354
20380
|
|
|
20355
20381
|
const userData = await getUserData();
|
|
20356
20382
|
|
|
20383
|
+
const sdkPackageVersion = await getSdkPackageVersionInfo(config);
|
|
20384
|
+
|
|
20357
20385
|
rollbar.configure({
|
|
20358
20386
|
payload: {
|
|
20359
|
-
|
|
20360
|
-
|
|
20361
|
-
|
|
20362
|
-
}
|
|
20387
|
+
person: {
|
|
20388
|
+
id: userData.globalUserId,
|
|
20389
|
+
},
|
|
20390
|
+
},
|
|
20363
20391
|
});
|
|
20364
20392
|
|
|
20365
|
-
rollbar.error(error, {
|
|
20393
|
+
return rollbar.error(error, {
|
|
20366
20394
|
custom: {
|
|
20367
|
-
code_version:
|
|
20395
|
+
code_version: sdkPackageVersion,
|
|
20368
20396
|
},
|
|
20369
20397
|
});
|
|
20370
20398
|
};
|
|
20371
20399
|
|
|
20372
|
-
const getSdkPackageVersionInfo = (config) => {
|
|
20400
|
+
const getSdkPackageVersionInfo = async (config) => {
|
|
20373
20401
|
try {
|
|
20374
|
-
const packageJsonFilePath = path__namespace
|
|
20402
|
+
const packageJsonFilePath = path__namespace.resolve(
|
|
20375
20403
|
config.client.rootDir,
|
|
20376
20404
|
"package.json",
|
|
20377
20405
|
);
|
|
20378
20406
|
|
|
20379
|
-
const packageJson =
|
|
20407
|
+
const packageJson = await import(packageJsonFilePath);
|
|
20380
20408
|
const devDependencies = packageJson.devDependencies;
|
|
20381
20409
|
const dependencies = packageJson.dependencies;
|
|
20382
20410
|
|
|
@@ -20385,10 +20413,26 @@ const getSdkPackageVersionInfo = (config) => {
|
|
|
20385
20413
|
};
|
|
20386
20414
|
|
|
20387
20415
|
const packageVersionInfo = {
|
|
20388
|
-
core: getDependencyVersion(
|
|
20389
|
-
|
|
20390
|
-
|
|
20391
|
-
|
|
20416
|
+
core: getDependencyVersion(
|
|
20417
|
+
"@embeddable.com/core",
|
|
20418
|
+
dependencies,
|
|
20419
|
+
devDependencies,
|
|
20420
|
+
),
|
|
20421
|
+
sdk_core: getDependencyVersion(
|
|
20422
|
+
"@embeddable.com/sdk-core",
|
|
20423
|
+
dependencies,
|
|
20424
|
+
devDependencies,
|
|
20425
|
+
),
|
|
20426
|
+
react: getDependencyVersion(
|
|
20427
|
+
"@embeddable.com/react",
|
|
20428
|
+
dependencies,
|
|
20429
|
+
devDependencies,
|
|
20430
|
+
),
|
|
20431
|
+
sdk_react: getDependencyVersion(
|
|
20432
|
+
"@embeddable.com/sdk-react",
|
|
20433
|
+
dependencies,
|
|
20434
|
+
devDependencies,
|
|
20435
|
+
),
|
|
20392
20436
|
};
|
|
20393
20437
|
|
|
20394
20438
|
return JSON.stringify(packageVersionInfo);
|
|
@@ -20400,9 +20444,9 @@ const getSdkPackageVersionInfo = (config) => {
|
|
|
20400
20444
|
|
|
20401
20445
|
async function getUserData() {
|
|
20402
20446
|
try {
|
|
20403
|
-
const token = await
|
|
20404
|
-
|
|
20405
|
-
|
|
20447
|
+
const token = await fs__namespace
|
|
20448
|
+
.readFile(CREDENTIALS_FILE)
|
|
20449
|
+
.then((data) => JSON.parse(data.toString()));
|
|
20406
20450
|
|
|
20407
20451
|
const decodedToken = jwtDecode(token.access_token);
|
|
20408
20452
|
|
|
@@ -20866,7 +20910,7 @@ const sendDataModelsAndSecurityContextsChanges = async (ctx) => {
|
|
|
20866
20910
|
if (isValid) {
|
|
20867
20911
|
const token = await getToken();
|
|
20868
20912
|
const sending = ora("Synchronising data models and/or security contexts...").start();
|
|
20869
|
-
const filesList = await findFiles(ctx.client.srcDir, YAML_OR_JS_FILES);
|
|
20913
|
+
const filesList = await findFiles(ctx.client.modelsSrc || ctx.client.srcDir, YAML_OR_JS_FILES);
|
|
20870
20914
|
await archive(ctx, filesList, false);
|
|
20871
20915
|
await sendBuild(ctx, { workspaceId: previewWorkspace, token });
|
|
20872
20916
|
sending.succeed(`Data models and/or security context synchronized`);
|
|
@@ -20951,6 +20995,7 @@ var defineConfig = ({ plugins, pushBaseUrl, audienceUrl, authDomain, authClientI
|
|
|
20951
20995
|
errorFallbackComponent: errorFallbackComponent
|
|
20952
20996
|
? path__namespace.resolve(clientRoot, errorFallbackComponent)
|
|
20953
20997
|
: undefined,
|
|
20998
|
+
bundleHash: undefined, // This will be set by the build process
|
|
20954
20999
|
},
|
|
20955
21000
|
outputOptions: {
|
|
20956
21001
|
typesEntryPointFilename: "embeddable-types-entry-point.js",
|
|
@@ -20967,7 +21012,7 @@ var defineConfig = ({ plugins, pushBaseUrl, audienceUrl, authDomain, authClientI
|
|
|
20967
21012
|
};
|
|
20968
21013
|
|
|
20969
21014
|
var name = "@embeddable.com/sdk-core";
|
|
20970
|
-
var version = "3.
|
|
21015
|
+
var version = "3.5.0";
|
|
20971
21016
|
var description = "Core Embeddable SDK module responsible for web-components bundling and publishing.";
|
|
20972
21017
|
var keywords = [
|
|
20973
21018
|
"embeddable",
|