oc 0.50.27 → 0.50.28
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/.github/workflows/node.js.yml +1 -1
- package/CHANGELOG.md +8 -0
- package/dist/cli/commands.d.ts +19 -0
- package/dist/cli/commands.js +19 -0
- package/dist/cli/domain/ocConfig.d.ts +16 -0
- package/dist/cli/domain/ocConfig.js +3 -1
- package/dist/cli/domain/registry.d.ts +4 -0
- package/dist/cli/domain/registry.js +41 -0
- package/dist/cli/facade/dev.js +29 -20
- package/dist/cli/facade/validate.d.ts +20 -0
- package/dist/cli/facade/validate.js +127 -0
- package/dist/cli/index.js +3 -1
- package/dist/components/oc-client/_package/package.json +4 -4
- package/dist/components/oc-client/_package/server.js +1 -1
- package/dist/components/oc-client/_package/src/oc-client.js +2 -2
- package/dist/components/oc-client/_package/src/oc-client.min.js +1 -1
- package/dist/components/oc-client/package.json +1 -1
- package/dist/components/oc-client/src/oc-client.js +2 -2
- package/dist/components/oc-client/src/oc-client.min.js +1 -1
- package/dist/registry/domain/options-sanitiser.d.ts +1 -0
- package/dist/registry/domain/options-sanitiser.js +55 -1
- package/dist/registry/domain/validators/registry-configuration.js +4 -2
- package/dist/registry/index.js +1 -1
- package/dist/registry/router.js +15 -3
- package/dist/registry/routes/component-info.js +9 -2
- package/dist/registry/routes/component-preview.js +1 -0
- package/dist/registry/routes/component.js +7 -0
- package/dist/registry/routes/components.js +14 -0
- package/dist/registry/routes/helpers/format-error-stack.d.ts +7 -0
- package/dist/registry/routes/helpers/format-error-stack.js +172 -0
- package/dist/registry/routes/helpers/get-component.d.ts +7 -1
- package/dist/registry/routes/helpers/get-component.js +37 -5
- package/dist/registry/routes/validate.d.ts +2 -0
- package/dist/registry/routes/validate.js +153 -0
- package/dist/registry/views/info.js +10 -1
- package/dist/registry/views/partials/component-author.js +1 -1
- package/dist/registry/views/partials/component-parameters.d.ts +2 -1
- package/dist/registry/views/partials/component-parameters.js +20 -3
- package/dist/registry/views/partials/component-versions.js +1 -1
- package/dist/registry/views/partials/components-dependencies.js +1 -1
- package/dist/registry/views/partials/components-list.js +2 -2
- package/dist/registry/views/partials/components-templates.js +2 -2
- package/dist/registry/views/partials/layout.js +1 -1
- package/dist/registry/views/partials/property.js +2 -2
- package/dist/registry/views/preview.d.ts +1 -0
- package/dist/registry/views/preview.js +256 -3
- package/dist/registry/views/static/info.d.ts +1 -1
- package/dist/registry/views/static/info.js +62 -0
- package/dist/registry/views/static/style.d.ts +1 -1
- package/dist/registry/views/static/style.js +1 -1
- package/dist/resources/index.d.ts +3 -1
- package/dist/resources/index.js +3 -1
- package/dist/types.d.ts +14 -1
- package/logintervals.md +1 -1
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
## Change Log
|
|
2
2
|
|
|
3
|
+
### v0.50.28
|
|
4
|
+
- [#1442](https://github.com/opencomponents/oc/pull/1442) add routes option in oc.json
|
|
5
|
+
- [#1441](https://github.com/opencomponents/oc/pull/1441) add preload option
|
|
6
|
+
- [#1440](https://github.com/opencomponents/oc/pull/1440) validate command
|
|
7
|
+
- [#1439](https://github.com/opencomponents/oc/pull/1439) add editable fields
|
|
8
|
+
- [#1436](https://github.com/opencomponents/oc/pull/1436) add preview overlay
|
|
9
|
+
- [#1438](https://github.com/opencomponents/oc/pull/1438) feat: add setCookie functionality to component context
|
|
10
|
+
|
|
3
11
|
### v0.50.27
|
|
4
12
|
- [#1435](https://github.com/opencomponents/oc/pull/1435) Fix loading info correctly
|
|
5
13
|
|
package/dist/cli/commands.d.ts
CHANGED
|
@@ -132,6 +132,25 @@ declare const _default: {
|
|
|
132
132
|
description: string;
|
|
133
133
|
usage: string;
|
|
134
134
|
};
|
|
135
|
+
validate: {
|
|
136
|
+
cmd: string;
|
|
137
|
+
example: {
|
|
138
|
+
cmd: string;
|
|
139
|
+
};
|
|
140
|
+
options: {
|
|
141
|
+
skipPackage: {
|
|
142
|
+
boolean: boolean;
|
|
143
|
+
description: string;
|
|
144
|
+
default: boolean;
|
|
145
|
+
};
|
|
146
|
+
registries: {
|
|
147
|
+
array: boolean;
|
|
148
|
+
description: string;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
description: string;
|
|
152
|
+
usage: string;
|
|
153
|
+
};
|
|
135
154
|
registry: {
|
|
136
155
|
cmd: string;
|
|
137
156
|
description: string;
|
package/dist/cli/commands.js
CHANGED
|
@@ -132,6 +132,25 @@ exports.default = {
|
|
|
132
132
|
description: 'Publish a component',
|
|
133
133
|
usage: 'Usage: $0 publish <componentPath>'
|
|
134
134
|
},
|
|
135
|
+
validate: {
|
|
136
|
+
cmd: 'validate <componentPath>',
|
|
137
|
+
example: {
|
|
138
|
+
cmd: '$0 validate my-new-component/'
|
|
139
|
+
},
|
|
140
|
+
options: {
|
|
141
|
+
skipPackage: {
|
|
142
|
+
boolean: true,
|
|
143
|
+
description: 'Skip packaging step and validate existing package.json',
|
|
144
|
+
default: false
|
|
145
|
+
},
|
|
146
|
+
registries: {
|
|
147
|
+
array: true,
|
|
148
|
+
description: 'List of registries to validate against. This setting will take precedence over oc.json file'
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
description: 'Validate a component against registry requirements without publishing',
|
|
152
|
+
usage: 'Usage: $0 validate <componentPath>'
|
|
153
|
+
},
|
|
135
154
|
registry: {
|
|
136
155
|
cmd: 'registry <command>',
|
|
137
156
|
description: 'Manage oc registries in the current project',
|
|
@@ -5,6 +5,16 @@ export interface OpenComponentsConfig {
|
|
|
5
5
|
registries?: string[];
|
|
6
6
|
/** Development-specific configuration settings */
|
|
7
7
|
development?: {
|
|
8
|
+
/** Additional Express routes to mount on the registry application */
|
|
9
|
+
routes?: Array<{
|
|
10
|
+
route: string;
|
|
11
|
+
method: string;
|
|
12
|
+
handler: string;
|
|
13
|
+
}>;
|
|
14
|
+
/** JavaScript code to be included in the preview HTML's <head> section.
|
|
15
|
+
* Can be either a filepath to a JS script or inline JavaScript code.
|
|
16
|
+
*/
|
|
17
|
+
preload?: string;
|
|
8
18
|
/** Fallback configuration for when components cannot be found locally */
|
|
9
19
|
fallback?: {
|
|
10
20
|
/** URL of the fallback registry to use when components cannot be found locally */
|
|
@@ -35,6 +45,12 @@ type ParsedConfig = {
|
|
|
35
45
|
sourcePath?: string;
|
|
36
46
|
registries: string[];
|
|
37
47
|
development: {
|
|
48
|
+
routes?: Array<{
|
|
49
|
+
route: string;
|
|
50
|
+
method: string;
|
|
51
|
+
handler: string;
|
|
52
|
+
}>;
|
|
53
|
+
preload?: string;
|
|
38
54
|
plugins: {
|
|
39
55
|
dynamic?: Record<string, string>;
|
|
40
56
|
static?: Record<string, string>;
|
|
@@ -30,8 +30,10 @@ function parseConfig(config) {
|
|
|
30
30
|
...config,
|
|
31
31
|
registries: config.registries || [],
|
|
32
32
|
development: {
|
|
33
|
+
preload: config.development?.preload,
|
|
33
34
|
plugins,
|
|
34
|
-
fallback: config.development?.fallback
|
|
35
|
+
fallback: config.development?.fallback,
|
|
36
|
+
routes: config.development?.routes
|
|
35
37
|
}
|
|
36
38
|
};
|
|
37
39
|
return parsedConfig;
|
|
@@ -14,6 +14,10 @@ export default function registry(opts?: RegistryOptions): {
|
|
|
14
14
|
path: string;
|
|
15
15
|
}): Promise<void>;
|
|
16
16
|
remove(registry: string): Promise<void>;
|
|
17
|
+
validateComponent(options: {
|
|
18
|
+
url: string;
|
|
19
|
+
packageJson: any;
|
|
20
|
+
}): Promise<void>;
|
|
17
21
|
};
|
|
18
22
|
export type RegistryCli = ReturnType<typeof registry>;
|
|
19
23
|
export {};
|
|
@@ -144,6 +144,47 @@ function registry(opts = {}) {
|
|
|
144
144
|
const res = (0, ocConfig_1.getOcConfig)();
|
|
145
145
|
res.registries = res.registries?.filter((x) => x !== registry) || [];
|
|
146
146
|
(0, ocConfig_1.setOcConfig)(res);
|
|
147
|
+
},
|
|
148
|
+
async validateComponent(options) {
|
|
149
|
+
try {
|
|
150
|
+
const response = await (0, undici_1.request)(options.url, {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
headers: {
|
|
153
|
+
...requestsHeaders,
|
|
154
|
+
'Content-Type': 'application/json'
|
|
155
|
+
},
|
|
156
|
+
body: JSON.stringify({ packageJson: options.packageJson })
|
|
157
|
+
});
|
|
158
|
+
if (response.statusCode === 404) {
|
|
159
|
+
throw 'Registry URL is invalid or does not exist';
|
|
160
|
+
}
|
|
161
|
+
const result = (await response.body.json());
|
|
162
|
+
if (response.statusCode !== 200) {
|
|
163
|
+
throw result;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
catch (err) {
|
|
167
|
+
let parsedError = err;
|
|
168
|
+
let errMsg = '';
|
|
169
|
+
if (!parsedError || typeof parsedError !== 'object') {
|
|
170
|
+
try {
|
|
171
|
+
parsedError = JSON.parse(String(parsedError));
|
|
172
|
+
}
|
|
173
|
+
catch { }
|
|
174
|
+
}
|
|
175
|
+
if (!!parsedError.code && parsedError.code === 'ECONNREFUSED') {
|
|
176
|
+
errMsg = 'Connection to registry has not been established';
|
|
177
|
+
}
|
|
178
|
+
else if (parsedError.code !== 'cli_version_not_valid' &&
|
|
179
|
+
parsedError.code !== 'node_version_not_valid' &&
|
|
180
|
+
!!parsedError.error) {
|
|
181
|
+
errMsg = parsedError.error;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
errMsg = parsedError;
|
|
185
|
+
}
|
|
186
|
+
throw errMsg;
|
|
187
|
+
}
|
|
147
188
|
}
|
|
148
189
|
};
|
|
149
190
|
}
|
package/dist/cli/facade/dev.js
CHANGED
|
@@ -58,9 +58,9 @@ const dev = ({ local, logger }) => (0, universalify_1.fromPromise)(async (opts)
|
|
|
58
58
|
const baseUrl = opts.baseUrl || `http://localhost:${port}/`;
|
|
59
59
|
let fallbackRegistryUrl = opts.fallbackRegistryUrl;
|
|
60
60
|
let fallbackClient = false;
|
|
61
|
+
const localConfig = (0, ocConfig_1.getOcConfig)(componentsDir);
|
|
61
62
|
if (!fallbackRegistryUrl) {
|
|
62
63
|
try {
|
|
63
|
-
const localConfig = (0, ocConfig_1.getOcConfig)(componentsDir);
|
|
64
64
|
if (!fallbackRegistryUrl &&
|
|
65
65
|
typeof localConfig.development?.fallback?.url === 'string') {
|
|
66
66
|
fallbackRegistryUrl = localConfig.development?.fallback?.url;
|
|
@@ -174,25 +174,34 @@ const dev = ({ local, logger }) => (0, universalify_1.fromPromise)(async (opts)
|
|
|
174
174
|
const refresher = () => liveReloadServer.refresh('/');
|
|
175
175
|
liveReload = { refresher, port: otherPort };
|
|
176
176
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
177
|
+
let registry;
|
|
178
|
+
try {
|
|
179
|
+
registry = oc.Registry({
|
|
180
|
+
baseUrl,
|
|
181
|
+
prefix: opts.prefix || '',
|
|
182
|
+
dependencies: dependencies.modules,
|
|
183
|
+
compileClient: true,
|
|
184
|
+
discovery: true,
|
|
185
|
+
env: { name: 'local' },
|
|
186
|
+
fallbackRegistryUrl,
|
|
187
|
+
fallbackClient,
|
|
188
|
+
hotReloading,
|
|
189
|
+
liveReloadPort: liveReload.port,
|
|
190
|
+
local: true,
|
|
191
|
+
postRequestPayloadSize,
|
|
192
|
+
components: opts.components,
|
|
193
|
+
path: node_path_1.default.resolve(componentsDir),
|
|
194
|
+
port,
|
|
195
|
+
templates: dependencies.templates,
|
|
196
|
+
verbosity: 1,
|
|
197
|
+
preload: localConfig.development?.preload,
|
|
198
|
+
routes: localConfig.development?.routes
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
logger.err(String(err));
|
|
203
|
+
throw err;
|
|
204
|
+
}
|
|
196
205
|
registerPlugins(registry);
|
|
197
206
|
logger.warn(cliMessages.REGISTRY_STARTING(baseUrl));
|
|
198
207
|
if (liveReload.port) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Local } from '../domain/local';
|
|
2
|
+
import type { RegistryCli } from '../domain/registry';
|
|
3
|
+
import type { Logger } from '../logger';
|
|
4
|
+
declare const validate: ({ logger, registry, local }: {
|
|
5
|
+
logger: Logger;
|
|
6
|
+
registry: RegistryCli;
|
|
7
|
+
local: Local;
|
|
8
|
+
}) => {
|
|
9
|
+
(opts: {
|
|
10
|
+
componentPath: string;
|
|
11
|
+
skipPackage?: boolean;
|
|
12
|
+
registries?: string[];
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
(opts: {
|
|
15
|
+
componentPath: string;
|
|
16
|
+
skipPackage?: boolean;
|
|
17
|
+
registries?: string[];
|
|
18
|
+
}, arguments__1: (error: unknown, value: void) => void): void;
|
|
19
|
+
};
|
|
20
|
+
export default validate;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
+
const safe_1 = __importDefault(require("colors/safe"));
|
|
8
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
9
|
+
const universalify_1 = require("universalify");
|
|
10
|
+
const index_1 = __importDefault(require("../../resources/index"));
|
|
11
|
+
const handle_dependencies_1 = __importDefault(require("../domain/handle-dependencies"));
|
|
12
|
+
const validate = ({ logger, registry, local }) => (0, universalify_1.fromPromise)(async (opts) => {
|
|
13
|
+
const componentPath = opts.componentPath;
|
|
14
|
+
const skipPackage = opts.skipPackage;
|
|
15
|
+
const packageDir = node_path_1.default.resolve(componentPath, '_package');
|
|
16
|
+
let errorMessage;
|
|
17
|
+
const readPackageJson = () => fs_extra_1.default.readJson(node_path_1.default.join(packageDir, 'package.json'));
|
|
18
|
+
const packageComponent = async () => {
|
|
19
|
+
logger.warn(index_1.default.messages.cli.PACKAGING(packageDir));
|
|
20
|
+
const packageOptions = {
|
|
21
|
+
production: true,
|
|
22
|
+
componentPath: node_path_1.default.resolve(componentPath)
|
|
23
|
+
};
|
|
24
|
+
const component = await local.package(packageOptions);
|
|
25
|
+
return component;
|
|
26
|
+
};
|
|
27
|
+
const validateComponentWithRegistry = async (options) => {
|
|
28
|
+
const { registryUrl, packageJson, componentName, componentVersion } = options;
|
|
29
|
+
const registryNormalised = registryUrl.replace(/\/$/, '');
|
|
30
|
+
const validateUrl = `${registryNormalised}/~registry/validate/${componentName}/${componentVersion}`;
|
|
31
|
+
logger.warn(`Validating component against registry: ${registryNormalised}`);
|
|
32
|
+
try {
|
|
33
|
+
await registry.validateComponent({
|
|
34
|
+
url: validateUrl,
|
|
35
|
+
packageJson
|
|
36
|
+
});
|
|
37
|
+
logger.ok(`✓ Validation successful for registry: ${registryNormalised}`);
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
if (err.code === 'cli_version_not_valid') {
|
|
41
|
+
const upgradeCommand = index_1.default.commands.cli.UPGRADE(err.details.suggestedVersion);
|
|
42
|
+
const errorDetails = index_1.default.errors.cli.OC_CLI_VERSION_NEEDS_UPGRADE(safe_1.default.blue(upgradeCommand));
|
|
43
|
+
errorMessage = index_1.default.errors.cli.VALIDATION_FAIL(errorDetails);
|
|
44
|
+
logger.err(errorMessage);
|
|
45
|
+
throw errorMessage;
|
|
46
|
+
}
|
|
47
|
+
else if (err.code === 'node_version_not_valid') {
|
|
48
|
+
const details = index_1.default.errors.cli.NODE_CLI_VERSION_NEEDS_UPGRADE(err.details.suggestedVersion);
|
|
49
|
+
errorMessage = index_1.default.errors.cli.VALIDATION_FAIL(details);
|
|
50
|
+
logger.err(errorMessage);
|
|
51
|
+
throw errorMessage;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (err.message) {
|
|
55
|
+
errorMessage = err.message;
|
|
56
|
+
}
|
|
57
|
+
else if (err && typeof err === 'object') {
|
|
58
|
+
try {
|
|
59
|
+
errorMessage = JSON.stringify(err);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
errorMessage = String(err);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
errorMessage = String(err);
|
|
67
|
+
}
|
|
68
|
+
errorMessage = `✗ Validation failed for registry ${registryNormalised}: ${errorMessage}`;
|
|
69
|
+
logger.err(errorMessage);
|
|
70
|
+
throw errorMessage;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const validateWithRegistries = async (registryLocations, component) => {
|
|
75
|
+
const packageJsonPath = node_path_1.default.join(packageDir, 'package.json');
|
|
76
|
+
const packageJson = await fs_extra_1.default.readJson(packageJsonPath);
|
|
77
|
+
for (const registryUrl of registryLocations) {
|
|
78
|
+
await validateComponentWithRegistry({
|
|
79
|
+
registryUrl,
|
|
80
|
+
packageJson,
|
|
81
|
+
componentName: component.name,
|
|
82
|
+
componentVersion: component.version
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
try {
|
|
87
|
+
const registryLocations = opts.registries || (await registry.get());
|
|
88
|
+
if (!skipPackage) {
|
|
89
|
+
await (0, handle_dependencies_1.default)({
|
|
90
|
+
components: [node_path_1.default.resolve(componentPath)],
|
|
91
|
+
logger
|
|
92
|
+
}).catch((err) => {
|
|
93
|
+
logger.err(err);
|
|
94
|
+
return Promise.reject(err);
|
|
95
|
+
});
|
|
96
|
+
const component = await packageComponent().catch((err) => {
|
|
97
|
+
errorMessage = index_1.default.errors.cli.PACKAGE_CREATION_FAIL(String(err));
|
|
98
|
+
logger.err(errorMessage);
|
|
99
|
+
return Promise.reject(errorMessage);
|
|
100
|
+
});
|
|
101
|
+
await validateWithRegistries(registryLocations, component);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
if (fs_extra_1.default.existsSync(packageDir)) {
|
|
105
|
+
const component = await readPackageJson().catch((err) => {
|
|
106
|
+
logger.err(String(err));
|
|
107
|
+
return Promise.reject(err);
|
|
108
|
+
});
|
|
109
|
+
await validateWithRegistries(registryLocations, component);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
errorMessage = index_1.default.errors.cli.PACKAGE_FOLDER_MISSING;
|
|
113
|
+
logger.err(errorMessage);
|
|
114
|
+
throw errorMessage;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
logger.ok('✓ Component validation completed successfully for all registries');
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
// Don't log again if it's already been logged by validateComponentWithRegistry
|
|
121
|
+
if (!String(err).includes('✗ Validation failed for registry')) {
|
|
122
|
+
logger.err(String(err));
|
|
123
|
+
}
|
|
124
|
+
throw err;
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
exports.default = validate;
|
package/dist/cli/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const registry_2 = __importDefault(require("./facade/registry"));
|
|
|
20
20
|
const registry_add_1 = __importDefault(require("./facade/registry-add"));
|
|
21
21
|
const registry_ls_1 = __importDefault(require("./facade/registry-ls"));
|
|
22
22
|
const registry_remove_1 = __importDefault(require("./facade/registry-remove"));
|
|
23
|
+
const validate_1 = __importDefault(require("./facade/validate"));
|
|
23
24
|
const logger_1 = __importDefault(require("./logger"));
|
|
24
25
|
const validate_command_1 = __importDefault(require("./validate-command"));
|
|
25
26
|
const cliFunctions = {
|
|
@@ -33,7 +34,8 @@ const cliFunctions = {
|
|
|
33
34
|
registry: registry_2.default,
|
|
34
35
|
'registry-add': registry_add_1.default,
|
|
35
36
|
'registry-ls': registry_ls_1.default,
|
|
36
|
-
'registry-remove': registry_remove_1.default
|
|
37
|
+
'registry-remove': registry_remove_1.default,
|
|
38
|
+
validate: validate_1.default
|
|
37
39
|
};
|
|
38
40
|
const currentNodeVersion = process.version;
|
|
39
41
|
const minSupportedVersion = '6.0.0';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-client",
|
|
3
3
|
"description": "The OpenComponents client-side javascript client",
|
|
4
|
-
"version": "0.50.
|
|
4
|
+
"version": "0.50.28",
|
|
5
5
|
"repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
|
|
6
6
|
"author": "Matteo Figus <matteofigus@gmail.com>",
|
|
7
7
|
"oc": {
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
],
|
|
23
23
|
"dataProvider": {
|
|
24
24
|
"type": "node.js",
|
|
25
|
-
"hashKey": "
|
|
25
|
+
"hashKey": "8d9e7c4d166e0630573f2c69470003476451d7c5",
|
|
26
26
|
"src": "server.js",
|
|
27
27
|
"size": 613
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
|
-
"version": "0.50.
|
|
30
|
+
"version": "0.50.28",
|
|
31
31
|
"packaged": true,
|
|
32
|
-
"date":
|
|
32
|
+
"date": 1756715231220
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"oc-template-es6-compiler": "^1.0.1"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.28"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"8b7545cba94f7c029b9d46108bfe8e4e6040ea09",src:c+"template.js",props:n}}))})};exports.data=o;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenComponents client v2.1.
|
|
1
|
+
/*! OpenComponents client v2.1.4 | (c) 2015-2025 OpenComponents community | https://github.com/opencomponents/oc-client-browser/tree/master/LICENSES */
|
|
2
2
|
(() => {
|
|
3
3
|
// <define:__EXTERNALS__>
|
|
4
4
|
var define_EXTERNALS_default = [];
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
oc2.conf = oc2.conf || {};
|
|
454
454
|
oc2.cmd = oc2.cmd || [];
|
|
455
455
|
oc2.renderedComponents = oc2.renderedComponents || {};
|
|
456
|
-
oc2.clientVersion = "2.1.
|
|
456
|
+
oc2.clientVersion = "2.1.4";
|
|
457
457
|
let isRequired = (name, value) => {
|
|
458
458
|
if (!value) {
|
|
459
459
|
throw name + " parameter is required";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var R=[],D={},I={"oc-template-handlebars":{externals:[{global:"Handlebars",url:"https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.runtime.min.js"}]},"oc-template-jade":{externals:[{global:"jade",url:"https://cdnjs.cloudflare.com/ajax/libs/jade/1.11.0/runtime.min.js"}]},"oc-template-es6":{externals:[]}},k=-1,U=-2,L=-3,T=-4,H=-5,M=-6,P=-7,q="B",$="D",B="E",J="M",V="N",W="P",F="R",G="S",Y="Y",Z="U",z="Z",K=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Q="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:void 0;function i(e){const{hydrated:t,values:r}=this;if("number"==typeof e)return a.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;var n=r.length;for(const o of e)r.push(o);return t.length=r.length,a.call(this,n)}function a(e){const{hydrated:r,values:t,deferred:n,plugins:o}=this;let a;const s=[[e,e=>{a=e}]];let i=[];for(;0<s.length;){const[y,v]=s.pop();switch(y){case P:v(void 0);continue;case H:v(null);continue;case U:v(NaN);continue;case M:v(1/0);continue;case L:v(-1/0);continue;case T:v(-0);continue}if(r[y])v(r[y]);else{const b=t[y];if(b&&"object"==typeof b)if(Array.isArray(b))if("string"==typeof b[0]){var[l,c,d]=b;switch(l){case $:v(r[y]=new Date(c));continue;case Z:v(r[y]=new URL(c));continue;case q:v(r[y]=BigInt(c));continue;case F:v(r[y]=new RegExp(c,d));continue;case Y:v(r[y]=Symbol.for(c));continue;case G:const w=new Set;r[y]=w;for(let e=1;e<b.length;e++)s.push([b[e],e=>{w.add(e)}]);v(w);continue;case J:const g=new Map;r[y]=g;for(let e=1;e<b.length;e+=2){const E=[];s.push([b[e+1],e=>{E[1]=e}]),s.push([b[e],e=>{E[0]=e}]),i.push(()=>{g.set(E[0],E[1])})}v(g);continue;case V:const j=Object.create(null);r[y]=j;for(const x of Object.keys(c).reverse()){const S=[];s.push([c[x],e=>{S[1]=e}]),s.push([Number(x.slice(1)),e=>{S[0]=e}]),i.push(()=>{j[S[0]]=S[1]})}v(j);continue;case W:r[c]?v(r[y]=r[c]):(m=new K,n[c]=m,v(r[y]=m.promise));continue;case B:var[,u,m]=b,u=new(m&&Q&&Q[m]?Q[m]:Error)(u);r[y]=u,v(u);continue;case z:v(r[y]=r[c]);continue;default:if(Array.isArray(o)){const A=[];var p=b.slice(1);for(let t=0;t<p.length;t++){var h=p[t];s.push([h,e=>{A[t]=e}])}i.push(()=>{for(const t of o){var e=t(b[0],...A);if(e)return void v(r[y]=e.value)}throw new SyntaxError});continue}throw new SyntaxError}}else{const N=[];r[y]=N;for(let t=0;t<b.length;t++){var f=b[t];f!==k&&s.push([f,e=>{N[t]=e}])}v(N)}else{const C={};r[y]=C;for(const O of Object.keys(b).reverse()){const _=[];s.push([b[O],e=>{_[1]=e}]),s.push([Number(O.slice(1)),e=>{_[0]=e}]),i.push(()=>{C[_[0]]=_[1]})}v(C)}else r[y]=b,v(b)}}for(;0<i.length;)i.pop()();return a}async function X(e,t){var t=(t??{})["plugins"];const r=new K,n=e.pipeThrough(function(){const o=new TextDecoder;let a="";return new TransformStream({transform(e,t){e=o.decode(e,{stream:!0});const r=(a+e).split("\n");a=r.pop()||"";for(const n of r)t.enqueue(n)},flush(e){a&&e.enqueue(a)}})}()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:t};t=await async function(e){e=await e.read();if(!e.value)throw new SyntaxError;let t;try{t=JSON.parse(e.value)}catch(e){throw new SyntaxError}return{done:e.done,value:i.call(this,t)}}.call(o,n);let a=r.promise;return t.done?r.resolve():a=async function(e){let t=await e.read();for(;!t.done;)if(t.value){const o=t.value;switch(o[0]){case W:{var r=o.indexOf(":"),n=Number(o.slice(1,r));const a=this.deferred[n];if(!a)throw new Error(`Deferred ID ${n} not found in stream`);n=o.slice(r+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}r=i.call(this,e);a.resolve(r);break}case B:{n=o.indexOf(":"),r=Number(o.slice(1,n));const s=this.deferred[r];if(!s)throw new Error(`Deferred ID ${r} not found in stream`);n=o.slice(n+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}n=i.call(this,e);s.reject(n);break}default:throw new SyntaxError}t=await e.read()}}.call(o,n).then(r.resolve).catch(e=>{for(const t of Object.values(o.deferred))t.reject(e);r.reject(e)}),{done:a.then(()=>n.closed),value:t.value}}function ee(e){const t=new Error(e.message||e);return e.stack&&(t.stack=e.stack),Object.assign(t,e.originalError,e)}var e=window.oc||{},t=new class{loaded=new Set;errors=new Set;parse(e){const[t,r]=e.split("#");var n=t.startsWith("module:"),o=t.replace(/^module:/,""),[a,e]=(r?.split("=")||[]).reduce((e,t)=>t.startsWith("=")?[t.slice(1),e[1]]:[e[0],t],[]);return{src:o,isModule:n,fallback:a,id:e}}async load(...e){for(const t of e)Array.isArray(t)?await Promise.all(t.map(e=>this._load(e))):"function"==typeof t?await t():await this._load(t);return this}async _load(t){if(!this.loaded.has(t))try{t.endsWith(".css")?await this.css(t):await this.js(t),this.loaded.add(t)}catch(e){for(const r of this.errors)r(t);throw e}}js(e){const{src:n,isModule:o,fallback:a}=this.parse(e);return new Promise((e,t)=>{const r=document.createElement("script");r.type=o?"module":"text/javascript",r.src=n,r.onload=e,r.onerror=()=>a?this._load(a).then(e).catch(t):t(),document.head.append(r)})}css(e){const n=this.parse(e)["src"];return new Promise((e,t)=>{const r=document.createElement("link");r.rel="stylesheet",r.href=n,r.onload=e,r.onerror=t,document.head.append(r)})}onError(e){return this.errors.add(e),this}};window.ljs=t,window.oc=function(l){if(l.status)return l;l.status="loading",l.conf=l.conf||{},l.cmd=l.cmd||[],l.renderedComponents=l.renderedComponents||{},l.clientVersion="2.1.3";let i=(e,t)=>{if(!t)throw e+" parameter is required"},s=document,c=window,d=()=>{},t=!1,r=!1,u={};var e=e=>"boolean"==typeof e;let m=setTimeout,n=l.cmd,p=l.conf,h=l.renderedComponents,f="data-rendered",y="data-rendering",v=e=>console.log(e),b=e=>p.debug&&console.log(e),w=e=>"x-text/stream"!==e.headers.get("Content-Type")?e.json():X(e.body).then(e=>e.value),g=p.retryInterval||Number(5e3),j=p.retryLimit||Number(30),a=!!e(p.disableLoader)&&p.disableLoader,E=p.retrySendNumber||!0,x=p.pollingInterval||500,S=p.tag||"oc-component";e=!!e(p.disableLifecycles)&&p.disableLifecycles;let A="Failed to load % component "+j+" times. Giving up",N="Error rendering component: %, error: ",C="Failed to retrieve the component. Retrying in "+g/1e3+" seconds...",O=p.loadingMessage||"",_=(e,t)=>e.replace("%",t),k=I,o=R,U=D,L=(e,t)=>{(e=Array.isArray(e)?e:[e]).map(e=>{!t&&k[e.type]||(k[e.type]={externals:e.externals})})};p.templates&&L(p.templates,!0);let T=()=>{let e=p.globalHeaders;return{Accept:"application/vnd.oc.unrendered+json","Content-Type":"application/json",..."function"==typeof e?e():e}};l.addStylesToHead=e=>{let t=s.createElement("style");t.textContent=e,s.head.appendChild(t)};let H=()=>{l.ready(l.renderUnloadedComponents)};l.registerTemplates=e=>(L(e),H(),k),l.require=(r,e,t)=>{t||(t=e,e=r,r=void 0),"string"==typeof r&&(r=[r]);let n=()=>{let e=c;if(null!=r){for(var t in r)if(e=e[r[t]],!e)return;return e}};var o=()=>{t(n())};n()?o():ljs.load(e,o)};let M=(t,r,n)=>{var e;n||(n=r,r=[]),t.length?(e=t[0],l.require(e.global,e.url,e=>{M(t.slice(1),r.concat(e),n)})):n(r)};l.requireSeries=M;let P=(e,t,r)=>{let n=e.setAttribute.bind(e);var o=t.name,a=t.version;n("id",t.id),n(f,!0),n(y,!1),n("data-version",a),n("data-id",t.ocId),"string"==typeof t.html&&(e.innerHTML=t.html),(e=>{for(var t of Array.from(e.querySelectorAll("script"))){let e=s.createElement("script");e.textContent=t.textContent;for(var r of Array.from(t.attributes))e.setAttribute(r.name,r.value);t.parentNode?.replaceChild(e,t)}})(e),t.key&&n("data-hash",t.key),o&&(n("data-name",o),h[o]={version:a},t.baseUrl&&(h[o].baseUrl=t.baseUrl),t.element=e,l.events.fire("oc:rendered",t)),r()},q=(n,o)=>{o=o||d;let e=n.version,t=n.baseUrl,r=n.name;i("version",e),i("baseUrl",t),i("name",r),n.action&&(t=`${t}~actions/${n.action}/${n.name}/${n.version||""}`);var a={...p.globalParameters,...n.parameters},s=n.action?a:{components:[{action:n.action,name:r,version:e,parameters:a}]},a=T();fetch(t,{method:"POST",headers:a,body:JSON.stringify(s)}).then(w).then(e=>{var t,r;n.action?(r=e.error?ee(e.details||e.error):null,o(r,e.data)):(r=(t=e[0].response).error?ee(t.details||t.error):null,o(r,t.data,e[0]))}).catch(o)};l.getData=q,l.getAction=t=>new Promise((r,n)=>{var e=t.component;q({json:!0,name:e,...h[e],...t},(e,t)=>{if(e)n(e);else if(t.component){let e=t.component.props;delete e._staticPath,delete e._baseUrl,delete e._componentName,delete e._componentVersion,r(e)}else r()})}),l.build=e=>{i("baseUrl",e.baseUrl),i("name",e.name);var t=e=>e?e.match(/\/$/)?e:e+"/":"";let r=t(e.baseUrl)+t(e.name)+t(e.version);if(e.parameters){r+="?";for(var[n,o]of Object.entries(e.parameters))/[+&=]/.test(o)&&(o=encodeURIComponent(o)),r+=n+"="+o+"&";r=r.slice(0,-1)}return"<"+S+' href="'+r+'"></'+S+">"},l.ready=e=>{t?e():r?n.push(e):(r=!0,l.requireSeries(o,()=>{t=!0,r=!1,l.events=(()=>{let n={};return{fire(e,t){if(n[e])for(var r of n[e])r({type:e},t)},on(e,t){if(!t)throw new Error("Callback is required");n[e]||(n[e]=[]),n[e].push(t)},off(e,t){for(var r of e="string"==typeof e?[e]:e)n[r]&&(t?n[r]=n[r].filter(e=>e!==t):delete n[r])},reset(){n={}}}})(),0<Object.keys(U).length&&s.head.appendChild(Object.assign(s.createElement("script"),{type:"importmap",textContent:JSON.stringify({imports:U})})),e(),l.events.fire("oc:ready",l),l.status="ready",n.map(e=>{e(l)}),l.cmd={push:e=>e(l)}}))};const $=(e,t,r)=>{!!t.data?.component?.esm?(async(t,r)=>{try{const{_staticPath:n,_componentName:o,_componentVersion:a}=t.component.props;window.oc._esm=window.oc._esm||{};window.oc._esm[`${o}@${a}`]=e=>{return n+"public/"+e};const{mount:s}=await import(t.component.src);let e={};if(t.component.development)e.development=t.component.development;s(t.element,t.component.props,e);r(null)}catch(e){console.error("Error rendering ESM component",e);r(e)}})(t.data,r):l.render(e,t.data,r)};return l.render=(n,o,a)=>{l.ready(()=>{if(o&&1==o.__oc_emptyResponse)return a(null,"");let t=n.type;"jade"!=t&&"handlebars"!=t||(t="oc-template-"+t);let r=k[t];r?l.require(["oc","components",n.key],n.src,e=>{e?M(r.externals,()=>{try{a(null,("oc-template-handlebars"==t?c.Handlebars.template(e,[]):e)(o))}catch(e){a(""+e)}}):a(_("Error getting compiled view: %",n.src))}):a(_('Error loading component: view engine "%" not supported',n.type))})},l.renderNestedComponent=(n,o)=>{l.ready(()=>{let e=(n=n[0]||n).getAttribute.bind(n),r=n.setAttribute.bind(n);var t="true"==e(y);"true"==e(f)?o():t?m(()=>{l.renderNestedComponent(n,o)},x):(b("Unrendered component found. Trying to retrieve it..."),r(y,!0),a||(n.innerHTML='<div class="oc-loading">'+O+"</div>"),l.renderByHref({href:e("href"),id:e("id"),element:n},(e,t)=>{e||!t?(r(y,!1),r(f,!1),r("data-failed",!0),n.innerHTML="",l.events.fire("oc:failed",{originalError:e,data:t,component:n}),v(e),o()):P(n,t,o)}))})},l.renderByHref=(e,t,o)=>{o=o||t;let a=Math.floor(9999999999*Math.random()),r=e.retryNumber||+t||0,n=e.href||e,s=e.id||a,i=e.element;l.ready(()=>{var e,t;n?fetch((e=n,t={...p.globalParameters,...E?{__oc_Retry:r}:{}},e+(~e.indexOf("?")?"&":"?")+new URLSearchParams(t)),{headers:T()}).then(w).then(r=>{let n=r.template;r.data.id=a,r.data.element=i,$(n,r,(e,t)=>{e?o(_(N,r.href)+e):(b(_("Component '%' correctly rendered",n.src)),o(null,{id:s,ocId:a,html:t,baseUrl:r.baseUrl,key:n.key,version:r.version,name:r.name}))})}).catch(e=>{var t,r;e&&429==e.status&&(u[n]=0),v(C),t=n,r=e=>{l.renderByHref({href:n,retryNumber:e,id:s,element:i},o)},e=()=>{o(_(A,n))},null==u[t]&&(u[t]=j),u[t]<=0?e():(m(()=>{r(j-u[t]+1)},g),u[t]--)}):o(N+"Href parameter missing")})},l.renderUnloadedComponents=()=>{l.ready(()=>{let r=s.querySelectorAll(`${S}:not([data-rendered="true"]):not([data-failed="true"])`);r.forEach((e,t)=>{l.renderNestedComponent(e,()=>{t==r.length-1&&l.renderUnloadedComponents()})})})},l.load=(t,r,n)=>{l.ready(()=>{if(n=n||d,t){(t=t[0]||t).innerHTML="<"+S+' href="'+r+'" />';let e=t.querySelector(S);l.renderNestedComponent(e,()=>{n(e)})}})},H(),window.customElements&&window.customElements.define(S,class extends HTMLElement{#connected=!1;#manageLifecycle=!e;constructor(){super()}connectedCallback(){this.#connected=!0,"true"==this.getAttribute("disable-lifecycle")||""==this.getAttribute("disable-lifecycle")?this.#manageLifecycle=!1:"false"==this.getAttribute("disable-lifecycle")&&(this.#manageLifecycle=!0),this.#manageLifecycle&&l.renderNestedComponent(this,()=>{})}disconnectedCallback(){var e;this.#connected&&(this.#connected=!1,(e=this.getAttribute("id"))&&l.events.fire("oc:unrendered",{element:this,id:e}),this.#manageLifecycle&&this.unmount&&"true"==this.getAttribute("data-rendered")&&(this.unmount(),this.removeAttribute("data-rendered")))}}),l}(e)})();
|
|
1
|
+
(()=>{var R=[],D={},I={"oc-template-handlebars":{externals:[{global:"Handlebars",url:"https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.runtime.min.js"}]},"oc-template-jade":{externals:[{global:"jade",url:"https://cdnjs.cloudflare.com/ajax/libs/jade/1.11.0/runtime.min.js"}]},"oc-template-es6":{externals:[]}},k=-1,U=-2,L=-3,T=-4,H=-5,M=-6,P=-7,q="B",$="D",B="E",J="M",V="N",W="P",F="R",G="S",Y="Y",Z="U",z="Z",K=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Q="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:void 0;function i(e){const{hydrated:t,values:r}=this;if("number"==typeof e)return a.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;var n=r.length;for(const o of e)r.push(o);return t.length=r.length,a.call(this,n)}function a(e){const{hydrated:r,values:t,deferred:n,plugins:o}=this;let a;const s=[[e,e=>{a=e}]];let i=[];for(;0<s.length;){const[y,v]=s.pop();switch(y){case P:v(void 0);continue;case H:v(null);continue;case U:v(NaN);continue;case M:v(1/0);continue;case L:v(-1/0);continue;case T:v(-0);continue}if(r[y])v(r[y]);else{const b=t[y];if(b&&"object"==typeof b)if(Array.isArray(b))if("string"==typeof b[0]){var[l,c,d]=b;switch(l){case $:v(r[y]=new Date(c));continue;case Z:v(r[y]=new URL(c));continue;case q:v(r[y]=BigInt(c));continue;case F:v(r[y]=new RegExp(c,d));continue;case Y:v(r[y]=Symbol.for(c));continue;case G:const w=new Set;r[y]=w;for(let e=1;e<b.length;e++)s.push([b[e],e=>{w.add(e)}]);v(w);continue;case J:const g=new Map;r[y]=g;for(let e=1;e<b.length;e+=2){const E=[];s.push([b[e+1],e=>{E[1]=e}]),s.push([b[e],e=>{E[0]=e}]),i.push(()=>{g.set(E[0],E[1])})}v(g);continue;case V:const j=Object.create(null);r[y]=j;for(const x of Object.keys(c).reverse()){const S=[];s.push([c[x],e=>{S[1]=e}]),s.push([Number(x.slice(1)),e=>{S[0]=e}]),i.push(()=>{j[S[0]]=S[1]})}v(j);continue;case W:r[c]?v(r[y]=r[c]):(m=new K,n[c]=m,v(r[y]=m.promise));continue;case B:var[,u,m]=b,u=new(m&&Q&&Q[m]?Q[m]:Error)(u);r[y]=u,v(u);continue;case z:v(r[y]=r[c]);continue;default:if(Array.isArray(o)){const A=[];var p=b.slice(1);for(let t=0;t<p.length;t++){var h=p[t];s.push([h,e=>{A[t]=e}])}i.push(()=>{for(const t of o){var e=t(b[0],...A);if(e)return void v(r[y]=e.value)}throw new SyntaxError});continue}throw new SyntaxError}}else{const N=[];r[y]=N;for(let t=0;t<b.length;t++){var f=b[t];f!==k&&s.push([f,e=>{N[t]=e}])}v(N)}else{const C={};r[y]=C;for(const O of Object.keys(b).reverse()){const _=[];s.push([b[O],e=>{_[1]=e}]),s.push([Number(O.slice(1)),e=>{_[0]=e}]),i.push(()=>{C[_[0]]=_[1]})}v(C)}else r[y]=b,v(b)}}for(;0<i.length;)i.pop()();return a}async function X(e,t){var t=(t??{})["plugins"];const r=new K,n=e.pipeThrough(function(){const o=new TextDecoder;let a="";return new TransformStream({transform(e,t){e=o.decode(e,{stream:!0});const r=(a+e).split("\n");a=r.pop()||"";for(const n of r)t.enqueue(n)},flush(e){a&&e.enqueue(a)}})}()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:t};t=await async function(e){e=await e.read();if(!e.value)throw new SyntaxError;let t;try{t=JSON.parse(e.value)}catch(e){throw new SyntaxError}return{done:e.done,value:i.call(this,t)}}.call(o,n);let a=r.promise;return t.done?r.resolve():a=async function(e){let t=await e.read();for(;!t.done;)if(t.value){const o=t.value;switch(o[0]){case W:{var r=o.indexOf(":"),n=Number(o.slice(1,r));const a=this.deferred[n];if(!a)throw new Error(`Deferred ID ${n} not found in stream`);n=o.slice(r+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}r=i.call(this,e);a.resolve(r);break}case B:{n=o.indexOf(":"),r=Number(o.slice(1,n));const s=this.deferred[r];if(!s)throw new Error(`Deferred ID ${r} not found in stream`);n=o.slice(n+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}n=i.call(this,e);s.reject(n);break}default:throw new SyntaxError}t=await e.read()}}.call(o,n).then(r.resolve).catch(e=>{for(const t of Object.values(o.deferred))t.reject(e);r.reject(e)}),{done:a.then(()=>n.closed),value:t.value}}function ee(e){const t=new Error(e.message||e);return e.stack&&(t.stack=e.stack),Object.assign(t,e.originalError,e)}var e=window.oc||{},t=new class{loaded=new Set;errors=new Set;parse(e){const[t,r]=e.split("#");var n=t.startsWith("module:"),o=t.replace(/^module:/,""),[a,e]=(r?.split("=")||[]).reduce((e,t)=>t.startsWith("=")?[t.slice(1),e[1]]:[e[0],t],[]);return{src:o,isModule:n,fallback:a,id:e}}async load(...e){for(const t of e)Array.isArray(t)?await Promise.all(t.map(e=>this._load(e))):"function"==typeof t?await t():await this._load(t);return this}async _load(t){if(!this.loaded.has(t))try{t.endsWith(".css")?await this.css(t):await this.js(t),this.loaded.add(t)}catch(e){for(const r of this.errors)r(t);throw e}}js(e){const{src:n,isModule:o,fallback:a}=this.parse(e);return new Promise((e,t)=>{const r=document.createElement("script");r.type=o?"module":"text/javascript",r.src=n,r.onload=e,r.onerror=()=>a?this._load(a).then(e).catch(t):t(),document.head.append(r)})}css(e){const n=this.parse(e)["src"];return new Promise((e,t)=>{const r=document.createElement("link");r.rel="stylesheet",r.href=n,r.onload=e,r.onerror=t,document.head.append(r)})}onError(e){return this.errors.add(e),this}};window.ljs=t,window.oc=function(l){if(l.status)return l;l.status="loading",l.conf=l.conf||{},l.cmd=l.cmd||[],l.renderedComponents=l.renderedComponents||{},l.clientVersion="2.1.4";let i=(e,t)=>{if(!t)throw e+" parameter is required"},s=document,c=window,d=()=>{},t=!1,r=!1,u={};var e=e=>"boolean"==typeof e;let m=setTimeout,n=l.cmd,p=l.conf,h=l.renderedComponents,f="data-rendered",y="data-rendering",v=e=>console.log(e),b=e=>p.debug&&console.log(e),w=e=>"x-text/stream"!==e.headers.get("Content-Type")?e.json():X(e.body).then(e=>e.value),g=p.retryInterval||Number(5e3),j=p.retryLimit||Number(30),a=!!e(p.disableLoader)&&p.disableLoader,E=p.retrySendNumber||!0,x=p.pollingInterval||500,S=p.tag||"oc-component";e=!!e(p.disableLifecycles)&&p.disableLifecycles;let A="Failed to load % component "+j+" times. Giving up",N="Error rendering component: %, error: ",C="Failed to retrieve the component. Retrying in "+g/1e3+" seconds...",O=p.loadingMessage||"",_=(e,t)=>e.replace("%",t),k=I,o=R,U=D,L=(e,t)=>{(e=Array.isArray(e)?e:[e]).map(e=>{!t&&k[e.type]||(k[e.type]={externals:e.externals})})};p.templates&&L(p.templates,!0);let T=()=>{let e=p.globalHeaders;return{Accept:"application/vnd.oc.unrendered+json","Content-Type":"application/json",..."function"==typeof e?e():e}};l.addStylesToHead=e=>{let t=s.createElement("style");t.textContent=e,s.head.appendChild(t)};let H=()=>{l.ready(l.renderUnloadedComponents)};l.registerTemplates=e=>(L(e),H(),k),l.require=(r,e,t)=>{t||(t=e,e=r,r=void 0),"string"==typeof r&&(r=[r]);let n=()=>{let e=c;if(null!=r){for(var t in r)if(e=e[r[t]],!e)return;return e}};var o=()=>{t(n())};n()?o():ljs.load(e,o)};let M=(t,r,n)=>{var e;n||(n=r,r=[]),t.length?(e=t[0],l.require(e.global,e.url,e=>{M(t.slice(1),r.concat(e),n)})):n(r)};l.requireSeries=M;let P=(e,t,r)=>{let n=e.setAttribute.bind(e);var o=t.name,a=t.version;n("id",t.id),n(f,!0),n(y,!1),n("data-version",a),n("data-id",t.ocId),"string"==typeof t.html&&(e.innerHTML=t.html),(e=>{for(var t of Array.from(e.querySelectorAll("script"))){let e=s.createElement("script");e.textContent=t.textContent;for(var r of Array.from(t.attributes))e.setAttribute(r.name,r.value);t.parentNode?.replaceChild(e,t)}})(e),t.key&&n("data-hash",t.key),o&&(n("data-name",o),h[o]={version:a},t.baseUrl&&(h[o].baseUrl=t.baseUrl),t.element=e,l.events.fire("oc:rendered",t)),r()},q=(n,o)=>{o=o||d;let e=n.version,t=n.baseUrl,r=n.name;i("version",e),i("baseUrl",t),i("name",r),n.action&&(t=`${t}~actions/${n.action}/${n.name}/${n.version||""}`);var a={...p.globalParameters,...n.parameters},s=n.action?a:{components:[{action:n.action,name:r,version:e,parameters:a}]},a=T();fetch(t,{method:"POST",headers:a,body:JSON.stringify(s)}).then(w).then(e=>{var t,r;n.action?(r=e.error?ee(e.details||e.error):null,o(r,e.data)):(r=(t=e[0].response).error?ee(t.details||t.error):null,o(r,t.data,e[0]))}).catch(o)};l.getData=q,l.getAction=t=>new Promise((r,n)=>{var e=t.component;q({json:!0,name:e,...h[e],...t},(e,t)=>{if(e)n(e);else if(t.component){let e=t.component.props;delete e._staticPath,delete e._baseUrl,delete e._componentName,delete e._componentVersion,r(e)}else r()})}),l.build=e=>{i("baseUrl",e.baseUrl),i("name",e.name);var t=e=>e?e.match(/\/$/)?e:e+"/":"";let r=t(e.baseUrl)+t(e.name)+t(e.version);if(e.parameters){r+="?";for(var[n,o]of Object.entries(e.parameters))/[+&=]/.test(o)&&(o=encodeURIComponent(o)),r+=n+"="+o+"&";r=r.slice(0,-1)}return"<"+S+' href="'+r+'"></'+S+">"},l.ready=e=>{t?e():r?n.push(e):(r=!0,l.requireSeries(o,()=>{t=!0,r=!1,l.events=(()=>{let n={};return{fire(e,t){if(n[e])for(var r of n[e])r({type:e},t)},on(e,t){if(!t)throw new Error("Callback is required");n[e]||(n[e]=[]),n[e].push(t)},off(e,t){for(var r of e="string"==typeof e?[e]:e)n[r]&&(t?n[r]=n[r].filter(e=>e!==t):delete n[r])},reset(){n={}}}})(),0<Object.keys(U).length&&s.head.appendChild(Object.assign(s.createElement("script"),{type:"importmap",textContent:JSON.stringify({imports:U})})),e(),l.events.fire("oc:ready",l),l.status="ready",n.map(e=>{e(l)}),l.cmd={push:e=>e(l)}}))};const $=(e,t,r)=>{!!t.data?.component?.esm?(async(t,r)=>{try{const{_staticPath:n,_componentName:o,_componentVersion:a}=t.component.props;window.oc._esm=window.oc._esm||{};window.oc._esm[`${o}@${a}`]=e=>{return n+"public/"+e};const{mount:s}=await import(t.component.src);let e={};if(t.component.development)e.development=t.component.development;s(t.element,t.component.props,e);r(null)}catch(e){console.error("Error rendering ESM component",e);r(e)}})(t.data,r):l.render(e,t.data,r)};return l.render=(n,o,a)=>{l.ready(()=>{if(o&&1==o.__oc_emptyResponse)return a(null,"");let t=n.type;"jade"!=t&&"handlebars"!=t||(t="oc-template-"+t);let r=k[t];r?l.require(["oc","components",n.key],n.src,e=>{e?M(r.externals,()=>{try{a(null,("oc-template-handlebars"==t?c.Handlebars.template(e,[]):e)(o))}catch(e){a(""+e)}}):a(_("Error getting compiled view: %",n.src))}):a(_('Error loading component: view engine "%" not supported',n.type))})},l.renderNestedComponent=(n,o)=>{l.ready(()=>{let e=(n=n[0]||n).getAttribute.bind(n),r=n.setAttribute.bind(n);var t="true"==e(y);"true"==e(f)?o():t?m(()=>{l.renderNestedComponent(n,o)},x):(b("Unrendered component found. Trying to retrieve it..."),r(y,!0),a||(n.innerHTML='<div class="oc-loading">'+O+"</div>"),l.renderByHref({href:e("href"),id:e("id"),element:n},(e,t)=>{e||!t?(r(y,!1),r(f,!1),r("data-failed",!0),n.innerHTML="",l.events.fire("oc:failed",{originalError:e,data:t,component:n}),v(e),o()):P(n,t,o)}))})},l.renderByHref=(e,t,o)=>{o=o||t;let a=Math.floor(9999999999*Math.random()),r=e.retryNumber||+t||0,n=e.href||e,s=e.id||a,i=e.element;l.ready(()=>{var e,t;n?fetch((e=n,t={...p.globalParameters,...E?{__oc_Retry:r}:{}},e+(~e.indexOf("?")?"&":"?")+new URLSearchParams(t)),{headers:T()}).then(w).then(r=>{let n=r.template;r.data.id=a,r.data.element=i,$(n,r,(e,t)=>{e?o(_(N,r.href)+e):(b(_("Component '%' correctly rendered",n.src)),o(null,{id:s,ocId:a,html:t,baseUrl:r.baseUrl,key:n.key,version:r.version,name:r.name}))})}).catch(e=>{var t,r;e&&429==e.status&&(u[n]=0),v(C),t=n,r=e=>{l.renderByHref({href:n,retryNumber:e,id:s,element:i},o)},e=()=>{o(_(A,n))},null==u[t]&&(u[t]=j),u[t]<=0?e():(m(()=>{r(j-u[t]+1)},g),u[t]--)}):o(N+"Href parameter missing")})},l.renderUnloadedComponents=()=>{l.ready(()=>{let r=s.querySelectorAll(`${S}:not([data-rendered="true"]):not([data-failed="true"])`);r.forEach((e,t)=>{l.renderNestedComponent(e,()=>{t==r.length-1&&l.renderUnloadedComponents()})})})},l.load=(t,r,n)=>{l.ready(()=>{if(n=n||d,t){(t=t[0]||t).innerHTML="<"+S+' href="'+r+'" />';let e=t.querySelector(S);l.renderNestedComponent(e,()=>{n(e)})}})},H(),window.customElements&&window.customElements.define(S,class extends HTMLElement{#connected=!1;#manageLifecycle=!e;constructor(){super()}connectedCallback(){this.#connected=!0,"true"==this.getAttribute("disable-lifecycle")||""==this.getAttribute("disable-lifecycle")?this.#manageLifecycle=!1:"false"==this.getAttribute("disable-lifecycle")&&(this.#manageLifecycle=!0),this.#manageLifecycle&&l.renderNestedComponent(this,()=>{})}disconnectedCallback(){var e;this.#connected&&(this.#connected=!1,(e=this.getAttribute("id"))&&l.events.fire("oc:unrendered",{element:this,id:e}),this.#manageLifecycle&&this.unmount&&"true"==this.getAttribute("data-rendered")&&(this.unmount(),this.removeAttribute("data-rendered")))}}),l}(e)})();
|
|
2
2
|
//# sourceMappingURL=oc-client.min.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oc-client",
|
|
3
3
|
"description": "The OpenComponents client-side javascript client",
|
|
4
|
-
"version": "0.50.
|
|
4
|
+
"version": "0.50.28",
|
|
5
5
|
"repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
|
|
6
6
|
"author": "Matteo Figus <matteofigus@gmail.com>",
|
|
7
7
|
"oc": {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! OpenComponents client v2.1.
|
|
1
|
+
/*! OpenComponents client v2.1.4 | (c) 2015-2025 OpenComponents community | https://github.com/opencomponents/oc-client-browser/tree/master/LICENSES */
|
|
2
2
|
(() => {
|
|
3
3
|
// <define:__EXTERNALS__>
|
|
4
4
|
var define_EXTERNALS_default = [];
|
|
@@ -453,7 +453,7 @@
|
|
|
453
453
|
oc2.conf = oc2.conf || {};
|
|
454
454
|
oc2.cmd = oc2.cmd || [];
|
|
455
455
|
oc2.renderedComponents = oc2.renderedComponents || {};
|
|
456
|
-
oc2.clientVersion = "2.1.
|
|
456
|
+
oc2.clientVersion = "2.1.4";
|
|
457
457
|
let isRequired = (name, value) => {
|
|
458
458
|
if (!value) {
|
|
459
459
|
throw name + " parameter is required";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var R=[],D={},I={"oc-template-handlebars":{externals:[{global:"Handlebars",url:"https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.runtime.min.js"}]},"oc-template-jade":{externals:[{global:"jade",url:"https://cdnjs.cloudflare.com/ajax/libs/jade/1.11.0/runtime.min.js"}]},"oc-template-es6":{externals:[]}},k=-1,U=-2,L=-3,T=-4,H=-5,M=-6,P=-7,q="B",$="D",B="E",J="M",V="N",W="P",F="R",G="S",Y="Y",Z="U",z="Z",K=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Q="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:void 0;function i(e){const{hydrated:t,values:r}=this;if("number"==typeof e)return a.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;var n=r.length;for(const o of e)r.push(o);return t.length=r.length,a.call(this,n)}function a(e){const{hydrated:r,values:t,deferred:n,plugins:o}=this;let a;const s=[[e,e=>{a=e}]];let i=[];for(;0<s.length;){const[y,v]=s.pop();switch(y){case P:v(void 0);continue;case H:v(null);continue;case U:v(NaN);continue;case M:v(1/0);continue;case L:v(-1/0);continue;case T:v(-0);continue}if(r[y])v(r[y]);else{const b=t[y];if(b&&"object"==typeof b)if(Array.isArray(b))if("string"==typeof b[0]){var[l,c,d]=b;switch(l){case $:v(r[y]=new Date(c));continue;case Z:v(r[y]=new URL(c));continue;case q:v(r[y]=BigInt(c));continue;case F:v(r[y]=new RegExp(c,d));continue;case Y:v(r[y]=Symbol.for(c));continue;case G:const w=new Set;r[y]=w;for(let e=1;e<b.length;e++)s.push([b[e],e=>{w.add(e)}]);v(w);continue;case J:const g=new Map;r[y]=g;for(let e=1;e<b.length;e+=2){const E=[];s.push([b[e+1],e=>{E[1]=e}]),s.push([b[e],e=>{E[0]=e}]),i.push(()=>{g.set(E[0],E[1])})}v(g);continue;case V:const j=Object.create(null);r[y]=j;for(const x of Object.keys(c).reverse()){const S=[];s.push([c[x],e=>{S[1]=e}]),s.push([Number(x.slice(1)),e=>{S[0]=e}]),i.push(()=>{j[S[0]]=S[1]})}v(j);continue;case W:r[c]?v(r[y]=r[c]):(m=new K,n[c]=m,v(r[y]=m.promise));continue;case B:var[,u,m]=b,u=new(m&&Q&&Q[m]?Q[m]:Error)(u);r[y]=u,v(u);continue;case z:v(r[y]=r[c]);continue;default:if(Array.isArray(o)){const A=[];var p=b.slice(1);for(let t=0;t<p.length;t++){var h=p[t];s.push([h,e=>{A[t]=e}])}i.push(()=>{for(const t of o){var e=t(b[0],...A);if(e)return void v(r[y]=e.value)}throw new SyntaxError});continue}throw new SyntaxError}}else{const N=[];r[y]=N;for(let t=0;t<b.length;t++){var f=b[t];f!==k&&s.push([f,e=>{N[t]=e}])}v(N)}else{const C={};r[y]=C;for(const O of Object.keys(b).reverse()){const _=[];s.push([b[O],e=>{_[1]=e}]),s.push([Number(O.slice(1)),e=>{_[0]=e}]),i.push(()=>{C[_[0]]=_[1]})}v(C)}else r[y]=b,v(b)}}for(;0<i.length;)i.pop()();return a}async function X(e,t){var t=(t??{})["plugins"];const r=new K,n=e.pipeThrough(function(){const o=new TextDecoder;let a="";return new TransformStream({transform(e,t){e=o.decode(e,{stream:!0});const r=(a+e).split("\n");a=r.pop()||"";for(const n of r)t.enqueue(n)},flush(e){a&&e.enqueue(a)}})}()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:t};t=await async function(e){e=await e.read();if(!e.value)throw new SyntaxError;let t;try{t=JSON.parse(e.value)}catch(e){throw new SyntaxError}return{done:e.done,value:i.call(this,t)}}.call(o,n);let a=r.promise;return t.done?r.resolve():a=async function(e){let t=await e.read();for(;!t.done;)if(t.value){const o=t.value;switch(o[0]){case W:{var r=o.indexOf(":"),n=Number(o.slice(1,r));const a=this.deferred[n];if(!a)throw new Error(`Deferred ID ${n} not found in stream`);n=o.slice(r+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}r=i.call(this,e);a.resolve(r);break}case B:{n=o.indexOf(":"),r=Number(o.slice(1,n));const s=this.deferred[r];if(!s)throw new Error(`Deferred ID ${r} not found in stream`);n=o.slice(n+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}n=i.call(this,e);s.reject(n);break}default:throw new SyntaxError}t=await e.read()}}.call(o,n).then(r.resolve).catch(e=>{for(const t of Object.values(o.deferred))t.reject(e);r.reject(e)}),{done:a.then(()=>n.closed),value:t.value}}function ee(e){const t=new Error(e.message||e);return e.stack&&(t.stack=e.stack),Object.assign(t,e.originalError,e)}var e=window.oc||{},t=new class{loaded=new Set;errors=new Set;parse(e){const[t,r]=e.split("#");var n=t.startsWith("module:"),o=t.replace(/^module:/,""),[a,e]=(r?.split("=")||[]).reduce((e,t)=>t.startsWith("=")?[t.slice(1),e[1]]:[e[0],t],[]);return{src:o,isModule:n,fallback:a,id:e}}async load(...e){for(const t of e)Array.isArray(t)?await Promise.all(t.map(e=>this._load(e))):"function"==typeof t?await t():await this._load(t);return this}async _load(t){if(!this.loaded.has(t))try{t.endsWith(".css")?await this.css(t):await this.js(t),this.loaded.add(t)}catch(e){for(const r of this.errors)r(t);throw e}}js(e){const{src:n,isModule:o,fallback:a}=this.parse(e);return new Promise((e,t)=>{const r=document.createElement("script");r.type=o?"module":"text/javascript",r.src=n,r.onload=e,r.onerror=()=>a?this._load(a).then(e).catch(t):t(),document.head.append(r)})}css(e){const n=this.parse(e)["src"];return new Promise((e,t)=>{const r=document.createElement("link");r.rel="stylesheet",r.href=n,r.onload=e,r.onerror=t,document.head.append(r)})}onError(e){return this.errors.add(e),this}};window.ljs=t,window.oc=function(l){if(l.status)return l;l.status="loading",l.conf=l.conf||{},l.cmd=l.cmd||[],l.renderedComponents=l.renderedComponents||{},l.clientVersion="2.1.3";let i=(e,t)=>{if(!t)throw e+" parameter is required"},s=document,c=window,d=()=>{},t=!1,r=!1,u={};var e=e=>"boolean"==typeof e;let m=setTimeout,n=l.cmd,p=l.conf,h=l.renderedComponents,f="data-rendered",y="data-rendering",v=e=>console.log(e),b=e=>p.debug&&console.log(e),w=e=>"x-text/stream"!==e.headers.get("Content-Type")?e.json():X(e.body).then(e=>e.value),g=p.retryInterval||Number(5e3),j=p.retryLimit||Number(30),a=!!e(p.disableLoader)&&p.disableLoader,E=p.retrySendNumber||!0,x=p.pollingInterval||500,S=p.tag||"oc-component";e=!!e(p.disableLifecycles)&&p.disableLifecycles;let A="Failed to load % component "+j+" times. Giving up",N="Error rendering component: %, error: ",C="Failed to retrieve the component. Retrying in "+g/1e3+" seconds...",O=p.loadingMessage||"",_=(e,t)=>e.replace("%",t),k=I,o=R,U=D,L=(e,t)=>{(e=Array.isArray(e)?e:[e]).map(e=>{!t&&k[e.type]||(k[e.type]={externals:e.externals})})};p.templates&&L(p.templates,!0);let T=()=>{let e=p.globalHeaders;return{Accept:"application/vnd.oc.unrendered+json","Content-Type":"application/json",..."function"==typeof e?e():e}};l.addStylesToHead=e=>{let t=s.createElement("style");t.textContent=e,s.head.appendChild(t)};let H=()=>{l.ready(l.renderUnloadedComponents)};l.registerTemplates=e=>(L(e),H(),k),l.require=(r,e,t)=>{t||(t=e,e=r,r=void 0),"string"==typeof r&&(r=[r]);let n=()=>{let e=c;if(null!=r){for(var t in r)if(e=e[r[t]],!e)return;return e}};var o=()=>{t(n())};n()?o():ljs.load(e,o)};let M=(t,r,n)=>{var e;n||(n=r,r=[]),t.length?(e=t[0],l.require(e.global,e.url,e=>{M(t.slice(1),r.concat(e),n)})):n(r)};l.requireSeries=M;let P=(e,t,r)=>{let n=e.setAttribute.bind(e);var o=t.name,a=t.version;n("id",t.id),n(f,!0),n(y,!1),n("data-version",a),n("data-id",t.ocId),"string"==typeof t.html&&(e.innerHTML=t.html),(e=>{for(var t of Array.from(e.querySelectorAll("script"))){let e=s.createElement("script");e.textContent=t.textContent;for(var r of Array.from(t.attributes))e.setAttribute(r.name,r.value);t.parentNode?.replaceChild(e,t)}})(e),t.key&&n("data-hash",t.key),o&&(n("data-name",o),h[o]={version:a},t.baseUrl&&(h[o].baseUrl=t.baseUrl),t.element=e,l.events.fire("oc:rendered",t)),r()},q=(n,o)=>{o=o||d;let e=n.version,t=n.baseUrl,r=n.name;i("version",e),i("baseUrl",t),i("name",r),n.action&&(t=`${t}~actions/${n.action}/${n.name}/${n.version||""}`);var a={...p.globalParameters,...n.parameters},s=n.action?a:{components:[{action:n.action,name:r,version:e,parameters:a}]},a=T();fetch(t,{method:"POST",headers:a,body:JSON.stringify(s)}).then(w).then(e=>{var t,r;n.action?(r=e.error?ee(e.details||e.error):null,o(r,e.data)):(r=(t=e[0].response).error?ee(t.details||t.error):null,o(r,t.data,e[0]))}).catch(o)};l.getData=q,l.getAction=t=>new Promise((r,n)=>{var e=t.component;q({json:!0,name:e,...h[e],...t},(e,t)=>{if(e)n(e);else if(t.component){let e=t.component.props;delete e._staticPath,delete e._baseUrl,delete e._componentName,delete e._componentVersion,r(e)}else r()})}),l.build=e=>{i("baseUrl",e.baseUrl),i("name",e.name);var t=e=>e?e.match(/\/$/)?e:e+"/":"";let r=t(e.baseUrl)+t(e.name)+t(e.version);if(e.parameters){r+="?";for(var[n,o]of Object.entries(e.parameters))/[+&=]/.test(o)&&(o=encodeURIComponent(o)),r+=n+"="+o+"&";r=r.slice(0,-1)}return"<"+S+' href="'+r+'"></'+S+">"},l.ready=e=>{t?e():r?n.push(e):(r=!0,l.requireSeries(o,()=>{t=!0,r=!1,l.events=(()=>{let n={};return{fire(e,t){if(n[e])for(var r of n[e])r({type:e},t)},on(e,t){if(!t)throw new Error("Callback is required");n[e]||(n[e]=[]),n[e].push(t)},off(e,t){for(var r of e="string"==typeof e?[e]:e)n[r]&&(t?n[r]=n[r].filter(e=>e!==t):delete n[r])},reset(){n={}}}})(),0<Object.keys(U).length&&s.head.appendChild(Object.assign(s.createElement("script"),{type:"importmap",textContent:JSON.stringify({imports:U})})),e(),l.events.fire("oc:ready",l),l.status="ready",n.map(e=>{e(l)}),l.cmd={push:e=>e(l)}}))};const $=(e,t,r)=>{!!t.data?.component?.esm?(async(t,r)=>{try{const{_staticPath:n,_componentName:o,_componentVersion:a}=t.component.props;window.oc._esm=window.oc._esm||{};window.oc._esm[`${o}@${a}`]=e=>{return n+"public/"+e};const{mount:s}=await import(t.component.src);let e={};if(t.component.development)e.development=t.component.development;s(t.element,t.component.props,e);r(null)}catch(e){console.error("Error rendering ESM component",e);r(e)}})(t.data,r):l.render(e,t.data,r)};return l.render=(n,o,a)=>{l.ready(()=>{if(o&&1==o.__oc_emptyResponse)return a(null,"");let t=n.type;"jade"!=t&&"handlebars"!=t||(t="oc-template-"+t);let r=k[t];r?l.require(["oc","components",n.key],n.src,e=>{e?M(r.externals,()=>{try{a(null,("oc-template-handlebars"==t?c.Handlebars.template(e,[]):e)(o))}catch(e){a(""+e)}}):a(_("Error getting compiled view: %",n.src))}):a(_('Error loading component: view engine "%" not supported',n.type))})},l.renderNestedComponent=(n,o)=>{l.ready(()=>{let e=(n=n[0]||n).getAttribute.bind(n),r=n.setAttribute.bind(n);var t="true"==e(y);"true"==e(f)?o():t?m(()=>{l.renderNestedComponent(n,o)},x):(b("Unrendered component found. Trying to retrieve it..."),r(y,!0),a||(n.innerHTML='<div class="oc-loading">'+O+"</div>"),l.renderByHref({href:e("href"),id:e("id"),element:n},(e,t)=>{e||!t?(r(y,!1),r(f,!1),r("data-failed",!0),n.innerHTML="",l.events.fire("oc:failed",{originalError:e,data:t,component:n}),v(e),o()):P(n,t,o)}))})},l.renderByHref=(e,t,o)=>{o=o||t;let a=Math.floor(9999999999*Math.random()),r=e.retryNumber||+t||0,n=e.href||e,s=e.id||a,i=e.element;l.ready(()=>{var e,t;n?fetch((e=n,t={...p.globalParameters,...E?{__oc_Retry:r}:{}},e+(~e.indexOf("?")?"&":"?")+new URLSearchParams(t)),{headers:T()}).then(w).then(r=>{let n=r.template;r.data.id=a,r.data.element=i,$(n,r,(e,t)=>{e?o(_(N,r.href)+e):(b(_("Component '%' correctly rendered",n.src)),o(null,{id:s,ocId:a,html:t,baseUrl:r.baseUrl,key:n.key,version:r.version,name:r.name}))})}).catch(e=>{var t,r;e&&429==e.status&&(u[n]=0),v(C),t=n,r=e=>{l.renderByHref({href:n,retryNumber:e,id:s,element:i},o)},e=()=>{o(_(A,n))},null==u[t]&&(u[t]=j),u[t]<=0?e():(m(()=>{r(j-u[t]+1)},g),u[t]--)}):o(N+"Href parameter missing")})},l.renderUnloadedComponents=()=>{l.ready(()=>{let r=s.querySelectorAll(`${S}:not([data-rendered="true"]):not([data-failed="true"])`);r.forEach((e,t)=>{l.renderNestedComponent(e,()=>{t==r.length-1&&l.renderUnloadedComponents()})})})},l.load=(t,r,n)=>{l.ready(()=>{if(n=n||d,t){(t=t[0]||t).innerHTML="<"+S+' href="'+r+'" />';let e=t.querySelector(S);l.renderNestedComponent(e,()=>{n(e)})}})},H(),window.customElements&&window.customElements.define(S,class extends HTMLElement{#connected=!1;#manageLifecycle=!e;constructor(){super()}connectedCallback(){this.#connected=!0,"true"==this.getAttribute("disable-lifecycle")||""==this.getAttribute("disable-lifecycle")?this.#manageLifecycle=!1:"false"==this.getAttribute("disable-lifecycle")&&(this.#manageLifecycle=!0),this.#manageLifecycle&&l.renderNestedComponent(this,()=>{})}disconnectedCallback(){var e;this.#connected&&(this.#connected=!1,(e=this.getAttribute("id"))&&l.events.fire("oc:unrendered",{element:this,id:e}),this.#manageLifecycle&&this.unmount&&"true"==this.getAttribute("data-rendered")&&(this.unmount(),this.removeAttribute("data-rendered")))}}),l}(e)})();
|
|
1
|
+
(()=>{var R=[],D={},I={"oc-template-handlebars":{externals:[{global:"Handlebars",url:"https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.runtime.min.js"}]},"oc-template-jade":{externals:[{global:"jade",url:"https://cdnjs.cloudflare.com/ajax/libs/jade/1.11.0/runtime.min.js"}]},"oc-template-es6":{externals:[]}},k=-1,U=-2,L=-3,T=-4,H=-5,M=-6,P=-7,q="B",$="D",B="E",J="M",V="N",W="P",F="R",G="S",Y="Y",Z="U",z="Z",K=class{promise;resolve;reject;constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Q="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:void 0;function i(e){const{hydrated:t,values:r}=this;if("number"==typeof e)return a.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;var n=r.length;for(const o of e)r.push(o);return t.length=r.length,a.call(this,n)}function a(e){const{hydrated:r,values:t,deferred:n,plugins:o}=this;let a;const s=[[e,e=>{a=e}]];let i=[];for(;0<s.length;){const[y,v]=s.pop();switch(y){case P:v(void 0);continue;case H:v(null);continue;case U:v(NaN);continue;case M:v(1/0);continue;case L:v(-1/0);continue;case T:v(-0);continue}if(r[y])v(r[y]);else{const b=t[y];if(b&&"object"==typeof b)if(Array.isArray(b))if("string"==typeof b[0]){var[l,c,d]=b;switch(l){case $:v(r[y]=new Date(c));continue;case Z:v(r[y]=new URL(c));continue;case q:v(r[y]=BigInt(c));continue;case F:v(r[y]=new RegExp(c,d));continue;case Y:v(r[y]=Symbol.for(c));continue;case G:const w=new Set;r[y]=w;for(let e=1;e<b.length;e++)s.push([b[e],e=>{w.add(e)}]);v(w);continue;case J:const g=new Map;r[y]=g;for(let e=1;e<b.length;e+=2){const E=[];s.push([b[e+1],e=>{E[1]=e}]),s.push([b[e],e=>{E[0]=e}]),i.push(()=>{g.set(E[0],E[1])})}v(g);continue;case V:const j=Object.create(null);r[y]=j;for(const x of Object.keys(c).reverse()){const S=[];s.push([c[x],e=>{S[1]=e}]),s.push([Number(x.slice(1)),e=>{S[0]=e}]),i.push(()=>{j[S[0]]=S[1]})}v(j);continue;case W:r[c]?v(r[y]=r[c]):(m=new K,n[c]=m,v(r[y]=m.promise));continue;case B:var[,u,m]=b,u=new(m&&Q&&Q[m]?Q[m]:Error)(u);r[y]=u,v(u);continue;case z:v(r[y]=r[c]);continue;default:if(Array.isArray(o)){const A=[];var p=b.slice(1);for(let t=0;t<p.length;t++){var h=p[t];s.push([h,e=>{A[t]=e}])}i.push(()=>{for(const t of o){var e=t(b[0],...A);if(e)return void v(r[y]=e.value)}throw new SyntaxError});continue}throw new SyntaxError}}else{const N=[];r[y]=N;for(let t=0;t<b.length;t++){var f=b[t];f!==k&&s.push([f,e=>{N[t]=e}])}v(N)}else{const C={};r[y]=C;for(const O of Object.keys(b).reverse()){const _=[];s.push([b[O],e=>{_[1]=e}]),s.push([Number(O.slice(1)),e=>{_[0]=e}]),i.push(()=>{C[_[0]]=_[1]})}v(C)}else r[y]=b,v(b)}}for(;0<i.length;)i.pop()();return a}async function X(e,t){var t=(t??{})["plugins"];const r=new K,n=e.pipeThrough(function(){const o=new TextDecoder;let a="";return new TransformStream({transform(e,t){e=o.decode(e,{stream:!0});const r=(a+e).split("\n");a=r.pop()||"";for(const n of r)t.enqueue(n)},flush(e){a&&e.enqueue(a)}})}()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:t};t=await async function(e){e=await e.read();if(!e.value)throw new SyntaxError;let t;try{t=JSON.parse(e.value)}catch(e){throw new SyntaxError}return{done:e.done,value:i.call(this,t)}}.call(o,n);let a=r.promise;return t.done?r.resolve():a=async function(e){let t=await e.read();for(;!t.done;)if(t.value){const o=t.value;switch(o[0]){case W:{var r=o.indexOf(":"),n=Number(o.slice(1,r));const a=this.deferred[n];if(!a)throw new Error(`Deferred ID ${n} not found in stream`);n=o.slice(r+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}r=i.call(this,e);a.resolve(r);break}case B:{n=o.indexOf(":"),r=Number(o.slice(1,n));const s=this.deferred[r];if(!s)throw new Error(`Deferred ID ${r} not found in stream`);n=o.slice(n+1);let e;try{e=JSON.parse(n)}catch(e){throw new SyntaxError}n=i.call(this,e);s.reject(n);break}default:throw new SyntaxError}t=await e.read()}}.call(o,n).then(r.resolve).catch(e=>{for(const t of Object.values(o.deferred))t.reject(e);r.reject(e)}),{done:a.then(()=>n.closed),value:t.value}}function ee(e){const t=new Error(e.message||e);return e.stack&&(t.stack=e.stack),Object.assign(t,e.originalError,e)}var e=window.oc||{},t=new class{loaded=new Set;errors=new Set;parse(e){const[t,r]=e.split("#");var n=t.startsWith("module:"),o=t.replace(/^module:/,""),[a,e]=(r?.split("=")||[]).reduce((e,t)=>t.startsWith("=")?[t.slice(1),e[1]]:[e[0],t],[]);return{src:o,isModule:n,fallback:a,id:e}}async load(...e){for(const t of e)Array.isArray(t)?await Promise.all(t.map(e=>this._load(e))):"function"==typeof t?await t():await this._load(t);return this}async _load(t){if(!this.loaded.has(t))try{t.endsWith(".css")?await this.css(t):await this.js(t),this.loaded.add(t)}catch(e){for(const r of this.errors)r(t);throw e}}js(e){const{src:n,isModule:o,fallback:a}=this.parse(e);return new Promise((e,t)=>{const r=document.createElement("script");r.type=o?"module":"text/javascript",r.src=n,r.onload=e,r.onerror=()=>a?this._load(a).then(e).catch(t):t(),document.head.append(r)})}css(e){const n=this.parse(e)["src"];return new Promise((e,t)=>{const r=document.createElement("link");r.rel="stylesheet",r.href=n,r.onload=e,r.onerror=t,document.head.append(r)})}onError(e){return this.errors.add(e),this}};window.ljs=t,window.oc=function(l){if(l.status)return l;l.status="loading",l.conf=l.conf||{},l.cmd=l.cmd||[],l.renderedComponents=l.renderedComponents||{},l.clientVersion="2.1.4";let i=(e,t)=>{if(!t)throw e+" parameter is required"},s=document,c=window,d=()=>{},t=!1,r=!1,u={};var e=e=>"boolean"==typeof e;let m=setTimeout,n=l.cmd,p=l.conf,h=l.renderedComponents,f="data-rendered",y="data-rendering",v=e=>console.log(e),b=e=>p.debug&&console.log(e),w=e=>"x-text/stream"!==e.headers.get("Content-Type")?e.json():X(e.body).then(e=>e.value),g=p.retryInterval||Number(5e3),j=p.retryLimit||Number(30),a=!!e(p.disableLoader)&&p.disableLoader,E=p.retrySendNumber||!0,x=p.pollingInterval||500,S=p.tag||"oc-component";e=!!e(p.disableLifecycles)&&p.disableLifecycles;let A="Failed to load % component "+j+" times. Giving up",N="Error rendering component: %, error: ",C="Failed to retrieve the component. Retrying in "+g/1e3+" seconds...",O=p.loadingMessage||"",_=(e,t)=>e.replace("%",t),k=I,o=R,U=D,L=(e,t)=>{(e=Array.isArray(e)?e:[e]).map(e=>{!t&&k[e.type]||(k[e.type]={externals:e.externals})})};p.templates&&L(p.templates,!0);let T=()=>{let e=p.globalHeaders;return{Accept:"application/vnd.oc.unrendered+json","Content-Type":"application/json",..."function"==typeof e?e():e}};l.addStylesToHead=e=>{let t=s.createElement("style");t.textContent=e,s.head.appendChild(t)};let H=()=>{l.ready(l.renderUnloadedComponents)};l.registerTemplates=e=>(L(e),H(),k),l.require=(r,e,t)=>{t||(t=e,e=r,r=void 0),"string"==typeof r&&(r=[r]);let n=()=>{let e=c;if(null!=r){for(var t in r)if(e=e[r[t]],!e)return;return e}};var o=()=>{t(n())};n()?o():ljs.load(e,o)};let M=(t,r,n)=>{var e;n||(n=r,r=[]),t.length?(e=t[0],l.require(e.global,e.url,e=>{M(t.slice(1),r.concat(e),n)})):n(r)};l.requireSeries=M;let P=(e,t,r)=>{let n=e.setAttribute.bind(e);var o=t.name,a=t.version;n("id",t.id),n(f,!0),n(y,!1),n("data-version",a),n("data-id",t.ocId),"string"==typeof t.html&&(e.innerHTML=t.html),(e=>{for(var t of Array.from(e.querySelectorAll("script"))){let e=s.createElement("script");e.textContent=t.textContent;for(var r of Array.from(t.attributes))e.setAttribute(r.name,r.value);t.parentNode?.replaceChild(e,t)}})(e),t.key&&n("data-hash",t.key),o&&(n("data-name",o),h[o]={version:a},t.baseUrl&&(h[o].baseUrl=t.baseUrl),t.element=e,l.events.fire("oc:rendered",t)),r()},q=(n,o)=>{o=o||d;let e=n.version,t=n.baseUrl,r=n.name;i("version",e),i("baseUrl",t),i("name",r),n.action&&(t=`${t}~actions/${n.action}/${n.name}/${n.version||""}`);var a={...p.globalParameters,...n.parameters},s=n.action?a:{components:[{action:n.action,name:r,version:e,parameters:a}]},a=T();fetch(t,{method:"POST",headers:a,body:JSON.stringify(s)}).then(w).then(e=>{var t,r;n.action?(r=e.error?ee(e.details||e.error):null,o(r,e.data)):(r=(t=e[0].response).error?ee(t.details||t.error):null,o(r,t.data,e[0]))}).catch(o)};l.getData=q,l.getAction=t=>new Promise((r,n)=>{var e=t.component;q({json:!0,name:e,...h[e],...t},(e,t)=>{if(e)n(e);else if(t.component){let e=t.component.props;delete e._staticPath,delete e._baseUrl,delete e._componentName,delete e._componentVersion,r(e)}else r()})}),l.build=e=>{i("baseUrl",e.baseUrl),i("name",e.name);var t=e=>e?e.match(/\/$/)?e:e+"/":"";let r=t(e.baseUrl)+t(e.name)+t(e.version);if(e.parameters){r+="?";for(var[n,o]of Object.entries(e.parameters))/[+&=]/.test(o)&&(o=encodeURIComponent(o)),r+=n+"="+o+"&";r=r.slice(0,-1)}return"<"+S+' href="'+r+'"></'+S+">"},l.ready=e=>{t?e():r?n.push(e):(r=!0,l.requireSeries(o,()=>{t=!0,r=!1,l.events=(()=>{let n={};return{fire(e,t){if(n[e])for(var r of n[e])r({type:e},t)},on(e,t){if(!t)throw new Error("Callback is required");n[e]||(n[e]=[]),n[e].push(t)},off(e,t){for(var r of e="string"==typeof e?[e]:e)n[r]&&(t?n[r]=n[r].filter(e=>e!==t):delete n[r])},reset(){n={}}}})(),0<Object.keys(U).length&&s.head.appendChild(Object.assign(s.createElement("script"),{type:"importmap",textContent:JSON.stringify({imports:U})})),e(),l.events.fire("oc:ready",l),l.status="ready",n.map(e=>{e(l)}),l.cmd={push:e=>e(l)}}))};const $=(e,t,r)=>{!!t.data?.component?.esm?(async(t,r)=>{try{const{_staticPath:n,_componentName:o,_componentVersion:a}=t.component.props;window.oc._esm=window.oc._esm||{};window.oc._esm[`${o}@${a}`]=e=>{return n+"public/"+e};const{mount:s}=await import(t.component.src);let e={};if(t.component.development)e.development=t.component.development;s(t.element,t.component.props,e);r(null)}catch(e){console.error("Error rendering ESM component",e);r(e)}})(t.data,r):l.render(e,t.data,r)};return l.render=(n,o,a)=>{l.ready(()=>{if(o&&1==o.__oc_emptyResponse)return a(null,"");let t=n.type;"jade"!=t&&"handlebars"!=t||(t="oc-template-"+t);let r=k[t];r?l.require(["oc","components",n.key],n.src,e=>{e?M(r.externals,()=>{try{a(null,("oc-template-handlebars"==t?c.Handlebars.template(e,[]):e)(o))}catch(e){a(""+e)}}):a(_("Error getting compiled view: %",n.src))}):a(_('Error loading component: view engine "%" not supported',n.type))})},l.renderNestedComponent=(n,o)=>{l.ready(()=>{let e=(n=n[0]||n).getAttribute.bind(n),r=n.setAttribute.bind(n);var t="true"==e(y);"true"==e(f)?o():t?m(()=>{l.renderNestedComponent(n,o)},x):(b("Unrendered component found. Trying to retrieve it..."),r(y,!0),a||(n.innerHTML='<div class="oc-loading">'+O+"</div>"),l.renderByHref({href:e("href"),id:e("id"),element:n},(e,t)=>{e||!t?(r(y,!1),r(f,!1),r("data-failed",!0),n.innerHTML="",l.events.fire("oc:failed",{originalError:e,data:t,component:n}),v(e),o()):P(n,t,o)}))})},l.renderByHref=(e,t,o)=>{o=o||t;let a=Math.floor(9999999999*Math.random()),r=e.retryNumber||+t||0,n=e.href||e,s=e.id||a,i=e.element;l.ready(()=>{var e,t;n?fetch((e=n,t={...p.globalParameters,...E?{__oc_Retry:r}:{}},e+(~e.indexOf("?")?"&":"?")+new URLSearchParams(t)),{headers:T()}).then(w).then(r=>{let n=r.template;r.data.id=a,r.data.element=i,$(n,r,(e,t)=>{e?o(_(N,r.href)+e):(b(_("Component '%' correctly rendered",n.src)),o(null,{id:s,ocId:a,html:t,baseUrl:r.baseUrl,key:n.key,version:r.version,name:r.name}))})}).catch(e=>{var t,r;e&&429==e.status&&(u[n]=0),v(C),t=n,r=e=>{l.renderByHref({href:n,retryNumber:e,id:s,element:i},o)},e=()=>{o(_(A,n))},null==u[t]&&(u[t]=j),u[t]<=0?e():(m(()=>{r(j-u[t]+1)},g),u[t]--)}):o(N+"Href parameter missing")})},l.renderUnloadedComponents=()=>{l.ready(()=>{let r=s.querySelectorAll(`${S}:not([data-rendered="true"]):not([data-failed="true"])`);r.forEach((e,t)=>{l.renderNestedComponent(e,()=>{t==r.length-1&&l.renderUnloadedComponents()})})})},l.load=(t,r,n)=>{l.ready(()=>{if(n=n||d,t){(t=t[0]||t).innerHTML="<"+S+' href="'+r+'" />';let e=t.querySelector(S);l.renderNestedComponent(e,()=>{n(e)})}})},H(),window.customElements&&window.customElements.define(S,class extends HTMLElement{#connected=!1;#manageLifecycle=!e;constructor(){super()}connectedCallback(){this.#connected=!0,"true"==this.getAttribute("disable-lifecycle")||""==this.getAttribute("disable-lifecycle")?this.#manageLifecycle=!1:"false"==this.getAttribute("disable-lifecycle")&&(this.#manageLifecycle=!0),this.#manageLifecycle&&l.renderNestedComponent(this,()=>{})}disconnectedCallback(){var e;this.#connected&&(this.#connected=!1,(e=this.getAttribute("id"))&&l.events.fire("oc:unrendered",{element:this,id:e}),this.#manageLifecycle&&this.unmount&&"true"==this.getAttribute("data-rendered")&&(this.unmount(),this.removeAttribute("data-rendered")))}}),l}(e)})();
|
|
2
2
|
//# sourceMappingURL=oc-client.min.map
|