piral-core 1.0.2-beta.5733 → 1.1.0-beta.5752

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/codegen.js CHANGED
@@ -823,7 +823,7 @@ var require_CachedInputFileSystem = __commonJS({
823
823
  "../../../node_modules/enhanced-resolve/lib/CachedInputFileSystem.js"(exports, module2) {
824
824
  "use strict";
825
825
  var nextTick = require("process").nextTick;
826
- var dirname = (path) => {
826
+ var dirname2 = (path) => {
827
827
  let idx = path.length - 1;
828
828
  while (idx >= 0) {
829
829
  const c = path.charCodeAt(idx);
@@ -1022,11 +1022,11 @@ var require_CachedInputFileSystem = __commonJS({
1022
1022
  if (!what) {
1023
1023
  this.purge();
1024
1024
  } else if (typeof what === "string") {
1025
- this.purge(dirname(what));
1025
+ this.purge(dirname2(what));
1026
1026
  } else {
1027
1027
  const set = new Set();
1028
1028
  for (const item of what) {
1029
- set.add(dirname(item));
1029
+ set.add(dirname2(item));
1030
1030
  }
1031
1031
  this.purge(set);
1032
1032
  }
@@ -1122,8 +1122,8 @@ var require_CachedInputFileSystem = __commonJS({
1122
1122
  this._readFileBackend = createBackend(duration, this.fileSystem.readFile, this.fileSystem.readFileSync, this.fileSystem);
1123
1123
  const readFile = this._readFileBackend.provide;
1124
1124
  this.readFile = readFile;
1125
- const readFileSync = this._readFileBackend.provideSync;
1126
- this.readFileSync = readFileSync;
1125
+ const readFileSync2 = this._readFileBackend.provideSync;
1126
+ this.readFileSync = readFileSync2;
1127
1127
  this._readJsonBackend = createBackend(duration, this.fileSystem.readJson || this.readFile && ((path, callback) => {
1128
1128
  this.readFile(path, (err, buffer) => {
1129
1129
  if (err)
@@ -3801,7 +3801,7 @@ var require_ExtensionAliasPlugin = __commonJS({
3801
3801
  const requestPath = request.request;
3802
3802
  if (!requestPath || !requestPath.endsWith(extension))
3803
3803
  return callback();
3804
- const resolve = (alias2, callback2) => {
3804
+ const resolve2 = (alias2, callback2) => {
3805
3805
  resolver.doResolve(target, {
3806
3806
  ...request,
3807
3807
  request: `${requestPath.slice(0, -extension.length)}${alias2}`,
@@ -3816,11 +3816,11 @@ var require_ExtensionAliasPlugin = __commonJS({
3816
3816
  return callback(null, null);
3817
3817
  };
3818
3818
  if (typeof alias === "string") {
3819
- resolve(alias, stoppingCallback);
3819
+ resolve2(alias, stoppingCallback);
3820
3820
  } else if (alias.length > 1) {
3821
- forEachBail(alias, resolve, stoppingCallback);
3821
+ forEachBail(alias, resolve2, stoppingCallback);
3822
3822
  } else {
3823
- resolve(alias[0], stoppingCallback);
3823
+ resolve2(alias[0], stoppingCallback);
3824
3824
  }
3825
3825
  });
3826
3826
  }
@@ -5039,7 +5039,7 @@ var require_lib2 = __commonJS({
5039
5039
  extensions: [".js", ".json", ".node"],
5040
5040
  fileSystem: nodeFileSystem2
5041
5041
  });
5042
- function resolve(context, path, request, resolveContext, callback) {
5042
+ function resolve2(context, path, request, resolveContext, callback) {
5043
5043
  if (typeof context === "string") {
5044
5044
  callback = resolveContext;
5045
5045
  resolveContext = request;
@@ -5107,7 +5107,7 @@ var require_lib2 = __commonJS({
5107
5107
  Object.defineProperties(obj, descriptors);
5108
5108
  return Object.freeze(obj);
5109
5109
  };
5110
- module2.exports = mergeExports(resolve, {
5110
+ module2.exports = mergeExports(resolve2, {
5111
5111
  get sync() {
5112
5112
  return resolveSync;
5113
5113
  },
@@ -5165,11 +5165,34 @@ function getModulePath(root, moduleName) {
5165
5165
  }
5166
5166
 
5167
5167
  // src/tools/codegen.ts
5168
+ var import_fs = __toModule(require("fs"));
5169
+ var import_path = __toModule(require("path"));
5170
+ function findPackagePath(moduleDir) {
5171
+ const packageJson = "package.json";
5172
+ const packagePath = (0, import_path.resolve)(moduleDir, packageJson);
5173
+ if ((0, import_fs.existsSync)(packagePath)) {
5174
+ return packagePath;
5175
+ }
5176
+ const newDir = (0, import_path.resolve)(moduleDir, "..");
5177
+ if (newDir !== moduleDir) {
5178
+ return findPackagePath(newDir);
5179
+ }
5180
+ return void 0;
5181
+ }
5182
+ function getPackageJson(root, packageName) {
5183
+ const moduleDir = (0, import_path.dirname)(getModulePath(root, packageName));
5184
+ try {
5185
+ const packagePath = findPackagePath(moduleDir);
5186
+ const content = (0, import_fs.readFileSync)(packagePath, "utf8");
5187
+ return JSON.parse(content) || {};
5188
+ } catch (e) {
5189
+ return {};
5190
+ }
5191
+ }
5168
5192
  function getRouterVersion(root) {
5169
5193
  const router = "react-router";
5170
5194
  try {
5171
- const modulePath = getModulePath(root, `${router}/package.json`);
5172
- const { version } = require(modulePath);
5195
+ const { version } = getPackageJson(root, router);
5173
5196
  const [major] = version.split(".");
5174
5197
  return parseInt(major, 10);
5175
5198
  } catch (e) {
@@ -5178,14 +5201,12 @@ function getRouterVersion(root) {
5178
5201
  }
5179
5202
  }
5180
5203
  function getIdentifiers(root, packageName) {
5181
- const packageJson = `${packageName}/package.json`;
5182
5204
  const identifiers = [packageName];
5183
5205
  try {
5184
- const modulePath = getModulePath(root, packageJson);
5185
- const details = require(modulePath);
5206
+ const details = getPackageJson(root, packageName);
5186
5207
  if (details.version) {
5187
5208
  identifiers.push(`${packageName}@${details.version}`);
5188
- if (details.name !== packageName) {
5209
+ if (details.name && details.name !== packageName) {
5189
5210
  identifiers.push(`${details.name}@${details.version}`);
5190
5211
  }
5191
5212
  }
@@ -5203,18 +5224,33 @@ function getModulePathOrDefault(root, name) {
5203
5224
  function createDependencies(imports, exports, opts) {
5204
5225
  const { root, appName, externals } = opts;
5205
5226
  const assignments = [];
5227
+ const asyncAssignments = [];
5206
5228
  if (appName) {
5207
5229
  assignments.push(`deps['${appName}']={}`);
5208
5230
  }
5209
- for (const name of externals) {
5210
- const identifiers = getIdentifiers(root, name);
5211
- const path = getModulePathOrDefault(root, name);
5212
- const ref = `_${imports.length}`;
5213
- imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
5214
- for (const id of identifiers) {
5215
- assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
5231
+ for (const external of externals) {
5232
+ if (external.endsWith("?")) {
5233
+ const name = external.replace(/\?+$/, "");
5234
+ const identifiers = getIdentifiers(root, name);
5235
+ const path = getModulePathOrDefault(root, name);
5236
+ for (const id of identifiers) {
5237
+ asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
5238
+ }
5239
+ } else {
5240
+ const name = external;
5241
+ const identifiers = getIdentifiers(root, name);
5242
+ const path = getModulePathOrDefault(root, name);
5243
+ const ref = `_${imports.length}`;
5244
+ imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
5245
+ for (const id of identifiers) {
5246
+ assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
5247
+ }
5216
5248
  }
5217
5249
  }
5250
+ if (asyncAssignments.length) {
5251
+ imports.push(`import { registerModule } from 'piral-base'`);
5252
+ assignments.push(...asyncAssignments);
5253
+ }
5218
5254
  exports.push(`
5219
5255
  export function fillDependencies(deps) {
5220
5256
  ${assignments.join(";")}
@@ -1,10 +1,34 @@
1
1
  // this file is bundled, so the references here will not be at runtime (i.e., for a user)
2
2
  import { getModulePath } from 'piral-cli/src/external/resolve';
3
+ import { readFileSync, existsSync } from 'fs';
4
+ import { resolve, dirname } from 'path';
5
+ function findPackagePath(moduleDir) {
6
+ const packageJson = 'package.json';
7
+ const packagePath = resolve(moduleDir, packageJson);
8
+ if (existsSync(packagePath)) {
9
+ return packagePath;
10
+ }
11
+ const newDir = resolve(moduleDir, '..');
12
+ if (newDir !== moduleDir) {
13
+ return findPackagePath(newDir);
14
+ }
15
+ return undefined;
16
+ }
17
+ function getPackageJson(root, packageName) {
18
+ const moduleDir = dirname(getModulePath(root, packageName));
19
+ try {
20
+ const packagePath = findPackagePath(moduleDir);
21
+ const content = readFileSync(packagePath, 'utf8');
22
+ return JSON.parse(content) || {};
23
+ }
24
+ catch (_a) {
25
+ return {};
26
+ }
27
+ }
3
28
  function getRouterVersion(root) {
4
29
  const router = 'react-router';
5
30
  try {
6
- const modulePath = getModulePath(root, `${router}/package.json`);
7
- const { version } = require(modulePath);
31
+ const { version } = getPackageJson(root, router);
8
32
  const [major] = version.split('.');
9
33
  return parseInt(major, 10);
10
34
  }
@@ -14,14 +38,12 @@ function getRouterVersion(root) {
14
38
  }
15
39
  }
16
40
  function getIdentifiers(root, packageName) {
17
- const packageJson = `${packageName}/package.json`;
18
41
  const identifiers = [packageName];
19
42
  try {
20
- const modulePath = getModulePath(root, packageJson);
21
- const details = require(modulePath);
43
+ const details = getPackageJson(root, packageName);
22
44
  if (details.version) {
23
45
  identifiers.push(`${packageName}@${details.version}`);
24
- if (details.name !== packageName) {
46
+ if (details.name && details.name !== packageName) {
25
47
  identifiers.push(`${details.name}@${details.version}`);
26
48
  }
27
49
  }
@@ -40,17 +62,33 @@ function getModulePathOrDefault(root, name) {
40
62
  export function createDependencies(imports, exports, opts) {
41
63
  const { root, appName, externals } = opts;
42
64
  const assignments = [];
65
+ const asyncAssignments = [];
43
66
  if (appName) {
44
67
  assignments.push(`deps['${appName}']={}`);
45
68
  }
46
- for (const name of externals) {
47
- const identifiers = getIdentifiers(root, name);
48
- const path = getModulePathOrDefault(root, name);
49
- const ref = `_${imports.length}`;
50
- imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
51
- for (const id of identifiers) {
52
- assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
69
+ for (const external of externals) {
70
+ if (external.endsWith('?')) {
71
+ const name = external.replace(/\?+$/, '');
72
+ const identifiers = getIdentifiers(root, name);
73
+ const path = getModulePathOrDefault(root, name);
74
+ for (const id of identifiers) {
75
+ asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
76
+ }
53
77
  }
78
+ else {
79
+ const name = external;
80
+ const identifiers = getIdentifiers(root, name);
81
+ const path = getModulePathOrDefault(root, name);
82
+ const ref = `_${imports.length}`;
83
+ imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
84
+ for (const id of identifiers) {
85
+ assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
86
+ }
87
+ }
88
+ }
89
+ if (asyncAssignments.length) {
90
+ imports.push(`import { registerModule } from 'piral-base'`);
91
+ assignments.push(...asyncAssignments);
54
92
  }
55
93
  exports.push(`
56
94
  export function fillDependencies(deps) {
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createRouteHandler = exports.createDebugHandler = exports.createDefaultState = exports.createDependencies = void 0;
4
4
  // this file is bundled, so the references here will not be at runtime (i.e., for a user)
5
5
  const resolve_1 = require("piral-cli/src/external/resolve");
6
+ const fs_1 = require("fs");
7
+ const path_1 = require("path");
8
+ function findPackagePath(moduleDir) {
9
+ const packageJson = 'package.json';
10
+ const packagePath = (0, path_1.resolve)(moduleDir, packageJson);
11
+ if ((0, fs_1.existsSync)(packagePath)) {
12
+ return packagePath;
13
+ }
14
+ const newDir = (0, path_1.resolve)(moduleDir, '..');
15
+ if (newDir !== moduleDir) {
16
+ return findPackagePath(newDir);
17
+ }
18
+ return undefined;
19
+ }
20
+ function getPackageJson(root, packageName) {
21
+ const moduleDir = (0, path_1.dirname)((0, resolve_1.getModulePath)(root, packageName));
22
+ try {
23
+ const packagePath = findPackagePath(moduleDir);
24
+ const content = (0, fs_1.readFileSync)(packagePath, 'utf8');
25
+ return JSON.parse(content) || {};
26
+ }
27
+ catch (_a) {
28
+ return {};
29
+ }
30
+ }
6
31
  function getRouterVersion(root) {
7
32
  const router = 'react-router';
8
33
  try {
9
- const modulePath = (0, resolve_1.getModulePath)(root, `${router}/package.json`);
10
- const { version } = require(modulePath);
34
+ const { version } = getPackageJson(root, router);
11
35
  const [major] = version.split('.');
12
36
  return parseInt(major, 10);
13
37
  }
@@ -17,14 +41,12 @@ function getRouterVersion(root) {
17
41
  }
18
42
  }
19
43
  function getIdentifiers(root, packageName) {
20
- const packageJson = `${packageName}/package.json`;
21
44
  const identifiers = [packageName];
22
45
  try {
23
- const modulePath = (0, resolve_1.getModulePath)(root, packageJson);
24
- const details = require(modulePath);
46
+ const details = getPackageJson(root, packageName);
25
47
  if (details.version) {
26
48
  identifiers.push(`${packageName}@${details.version}`);
27
- if (details.name !== packageName) {
49
+ if (details.name && details.name !== packageName) {
28
50
  identifiers.push(`${details.name}@${details.version}`);
29
51
  }
30
52
  }
@@ -43,17 +65,33 @@ function getModulePathOrDefault(root, name) {
43
65
  function createDependencies(imports, exports, opts) {
44
66
  const { root, appName, externals } = opts;
45
67
  const assignments = [];
68
+ const asyncAssignments = [];
46
69
  if (appName) {
47
70
  assignments.push(`deps['${appName}']={}`);
48
71
  }
49
- for (const name of externals) {
50
- const identifiers = getIdentifiers(root, name);
51
- const path = getModulePathOrDefault(root, name);
52
- const ref = `_${imports.length}`;
53
- imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
54
- for (const id of identifiers) {
55
- assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
72
+ for (const external of externals) {
73
+ if (external.endsWith('?')) {
74
+ const name = external.replace(/\?+$/, '');
75
+ const identifiers = getIdentifiers(root, name);
76
+ const path = getModulePathOrDefault(root, name);
77
+ for (const id of identifiers) {
78
+ asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
79
+ }
56
80
  }
81
+ else {
82
+ const name = external;
83
+ const identifiers = getIdentifiers(root, name);
84
+ const path = getModulePathOrDefault(root, name);
85
+ const ref = `_${imports.length}`;
86
+ imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
87
+ for (const id of identifiers) {
88
+ assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
89
+ }
90
+ }
91
+ }
92
+ if (asyncAssignments.length) {
93
+ imports.push(`import { registerModule } from 'piral-base'`);
94
+ assignments.push(...asyncAssignments);
57
95
  }
58
96
  exports.push(`
59
97
  export function fillDependencies(deps) {
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-core",
3
- "version": "1.0.2-beta.5733",
3
+ "version": "1.1.0-beta.5752",
4
4
  "description": "The core library for creating a Piral instance.",
5
5
  "keywords": [
6
6
  "portal",
@@ -72,8 +72,8 @@
72
72
  "test": "echo \"Error: run tests from root\" && exit 1"
73
73
  },
74
74
  "dependencies": {
75
- "piral-base": "1.0.2-beta.5733",
76
- "piral-debug-utils": "1.0.2-beta.5733",
75
+ "piral-base": "1.1.0-beta.5752",
76
+ "piral-debug-utils": "1.1.0-beta.5752",
77
77
  "zustand": "^3.0.0"
78
78
  },
79
79
  "devDependencies": {
@@ -93,5 +93,5 @@
93
93
  "react-router-dom",
94
94
  "tslib"
95
95
  ],
96
- "gitHead": "627cdab64b20c305d7e37ac61aeec505fb7947e6"
96
+ "gitHead": "a25a97f00b21282f33439320bef90ccbcc27ee96"
97
97
  }
@@ -1,12 +1,42 @@
1
1
  // this file is bundled, so the references here will not be at runtime (i.e., for a user)
2
2
  import { getModulePath } from 'piral-cli/src/external/resolve';
3
+ import { readFileSync, existsSync } from 'fs';
4
+ import { resolve, dirname } from 'path';
5
+
6
+ function findPackagePath(moduleDir: string) {
7
+ const packageJson = 'package.json';
8
+ const packagePath = resolve(moduleDir, packageJson);
9
+
10
+ if (existsSync(packagePath)) {
11
+ return packagePath;
12
+ }
13
+
14
+ const newDir = resolve(moduleDir, '..');
15
+
16
+ if (newDir !== moduleDir) {
17
+ return findPackagePath(newDir);
18
+ }
19
+
20
+ return undefined;
21
+ }
22
+
23
+ function getPackageJson(root: string, packageName: string) {
24
+ const moduleDir = dirname(getModulePath(root, packageName));
25
+
26
+ try {
27
+ const packagePath = findPackagePath(moduleDir);
28
+ const content = readFileSync(packagePath, 'utf8');
29
+ return JSON.parse(content) || {};
30
+ } catch {
31
+ return {};
32
+ }
33
+ }
3
34
 
4
35
  function getRouterVersion(root: string) {
5
36
  const router = 'react-router';
6
37
 
7
38
  try {
8
- const modulePath = getModulePath(root, `${router}/package.json`);
9
- const { version } = require(modulePath);
39
+ const { version } = getPackageJson(root, router);
10
40
  const [major] = version.split('.');
11
41
  return parseInt(major, 10);
12
42
  } catch {
@@ -16,17 +46,15 @@ function getRouterVersion(root: string) {
16
46
  }
17
47
 
18
48
  function getIdentifiers(root: string, packageName: string) {
19
- const packageJson = `${packageName}/package.json`;
20
49
  const identifiers = [packageName];
21
50
 
22
51
  try {
23
- const modulePath = getModulePath(root, packageJson);
24
- const details = require(modulePath);
52
+ const details = getPackageJson(root, packageName);
25
53
 
26
54
  if (details.version) {
27
55
  identifiers.push(`${packageName}@${details.version}`);
28
56
 
29
- if (details.name !== packageName) {
57
+ if (details.name && details.name !== packageName) {
30
58
  identifiers.push(`${details.name}@${details.version}`);
31
59
  }
32
60
  }
@@ -63,22 +91,40 @@ interface CodegenOptions {
63
91
  export function createDependencies(imports: Array<string>, exports: Array<string>, opts: CodegenOptions) {
64
92
  const { root, appName, externals } = opts;
65
93
  const assignments: Array<string> = [];
94
+ const asyncAssignments: Array<string> = [];
66
95
 
67
96
  if (appName) {
68
97
  assignments.push(`deps['${appName}']={}`);
69
98
  }
70
99
 
71
- for (const name of externals) {
72
- const identifiers = getIdentifiers(root, name);
73
- const path = getModulePathOrDefault(root, name);
74
- const ref = `_${imports.length}`;
75
- imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
100
+ for (const external of externals) {
101
+ if (external.endsWith('?')) {
102
+ const name = external.replace(/\?+$/, '');
103
+ const identifiers = getIdentifiers(root, name);
104
+ const path = getModulePathOrDefault(root, name);
76
105
 
77
- for (const id of identifiers) {
78
- assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
106
+ for (const id of identifiers) {
107
+ asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
108
+ }
109
+ } else {
110
+ const name = external;
111
+ const identifiers = getIdentifiers(root, name);
112
+ const path = getModulePathOrDefault(root, name);
113
+ const ref = `_${imports.length}`;
114
+ imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
115
+
116
+ for (const id of identifiers) {
117
+ assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
118
+ }
79
119
  }
80
120
  }
81
121
 
122
+ if (asyncAssignments.length) {
123
+ imports.push(`import { registerModule } from 'piral-base'`);
124
+ assignments.push(...asyncAssignments);
125
+
126
+ }
127
+
82
128
  exports.push(`
83
129
  export function fillDependencies(deps) {
84
130
  ${assignments.join(';')}