@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/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
- const content = await fs__namespace.readFile(path__namespace.resolve(ctx.core.templatesDir, "component.tsx.template"), "utf8");
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
- person: {
20360
- id: userData.globalUserId
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: getSdkPackageVersionInfo(config)
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$1.resolve(
20402
+ const packageJsonFilePath = path__namespace.resolve(
20375
20403
  config.client.rootDir,
20376
20404
  "package.json",
20377
20405
  );
20378
20406
 
20379
- const packageJson = require(packageJsonFilePath);
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("@embeddable.com/core", dependencies, devDependencies),
20389
- sdk_core: getDependencyVersion("@embeddable.com/sdk-core", dependencies, devDependencies),
20390
- react: getDependencyVersion("@embeddable.com/react", dependencies, devDependencies),
20391
- sdk_react: getDependencyVersion("@embeddable.com/sdk-react", dependencies, devDependencies),
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 fs$1
20404
- .readFile(CREDENTIALS_FILE)
20405
- .then((data) => JSON.parse(data.toString()));
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.4.1";
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",