Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

piral-base

Package Overview
Dependencies
Maintainers
1
Versions
878
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

piral-base - npm Package Compare versions

Comparing version 0.11.0-pre.937 to 0.11.0-pre.942

14

lib/dependency.d.ts

@@ -20,1 +20,15 @@ import { PiletApp, AvailableDependencies } from './types';

export declare function compileDependency(name: string, content: string, link?: string, dependencies?: AvailableDependencies): Promise<PiletApp>;
declare global {
interface HTMLScriptElement {
app?: PiletApp;
}
}
/**
* Includes the given script via its URL with a dependency resolution.
* @param name The name of the dependency to include.
* @param link The link to the dependency.
* @param requireRef The name of the global require to inject.
* @param dependencies The globally available dependencies.
* @returns The evaluated module.
*/
export declare function includeDependency(name: string, link: string, requireRef: string, dependencies?: AvailableDependencies): Promise<PiletApp>;

33

lib/dependency.js

@@ -12,3 +12,3 @@ "use strict";

}
function checkPiletApp(app) {
function checkPiletApp(name, app) {
if (!app) {

@@ -27,2 +27,5 @@ console.error('Invalid module found.', name);

}
function getLocalRequire(dependencies = {}) {
return (moduleName) => requireModule(moduleName, dependencies);
}
/**

@@ -36,7 +39,7 @@ * Compiles the given content from a generic dependency.

*/
function evalDependency(name, content, link = '', dependencies = {}) {
function evalDependency(name, content, link = '', dependencies) {
const mod = {
exports: {},
};
const require = (moduleName) => requireModule(moduleName, dependencies);
const require = getLocalRequire(dependencies);
try {

@@ -61,7 +64,27 @@ const sourceUrl = link && `\n//# sourceURL=${link}`;

*/
function compileDependency(name, content, link = '', dependencies = {}) {
function compileDependency(name, content, link = '', dependencies) {
const app = evalDependency(name, content, link, dependencies);
return Promise.resolve(app).then(checkPiletApp);
return Promise.resolve(app).then(app => checkPiletApp(name, app));
}
exports.compileDependency = compileDependency;
/**
* Includes the given script via its URL with a dependency resolution.
* @param name The name of the dependency to include.
* @param link The link to the dependency.
* @param requireRef The name of the global require to inject.
* @param dependencies The globally available dependencies.
* @returns The evaluated module.
*/
function includeDependency(name, link, requireRef, dependencies) {
return new Promise(resolve => {
const s = document.createElement('script');
s.async = true;
s.src = link;
window[requireRef] = getLocalRequire(dependencies);
s.onload = () => resolve(checkPiletApp(name, s.app));
s.onerror = () => resolve(checkPiletApp(name));
document.body.appendChild(s);
});
}
exports.includeDependency = includeDependency;
//# sourceMappingURL=dependency.js.map

17

lib/load.js

@@ -6,5 +6,5 @@ "use strict";

const dependency_1 = require("./dependency");
function loadFromContent(meta, content, getDependencies, link) {
function loadFrom(meta, getDependencies, loader) {
const dependencies = Object.assign({}, (getDependencies(meta) || {}));
return dependency_1.compileDependency(meta.name, content, link, dependencies).then(app => (Object.assign(Object.assign({}, app), meta)));
return loader(dependencies).then(app => (Object.assign(Object.assign({}, app), meta)));
}

@@ -27,7 +27,12 @@ function checkFetchPilets(fetchPilets) {

function loadPilet(meta, getDependencies, fetchDependency = fetch_1.defaultFetchDependency) {
const { link, content } = meta;
const retrieve = link ? fetchDependency(link) : content ? Promise.resolve(content) : undefined;
if (retrieve) {
return retrieve.then(content => loadFromContent(meta, content, getDependencies, link));
const { link, content, requireRef } = meta;
if (requireRef) {
return loadFrom(meta, getDependencies, deps => dependency_1.includeDependency(meta.name, link, requireRef, deps));
}
else if (link) {
return fetchDependency(link).then(content => loadFrom(meta, getDependencies, deps => dependency_1.compileDependency(meta.name, content, link, deps)));
}
else if (content) {
return loadFrom(meta, getDependencies, deps => dependency_1.compileDependency(meta.name, content, link, deps));
}
else {

@@ -34,0 +39,0 @@ console.warn('Empty pilet found!', meta.name);

@@ -23,2 +23,8 @@ /**

/**
* The reference name for the global require.
* If set this wil trigger the script mode instead of the eval
* mode.
*/
requireRef?: string;
/**
* The computed hash value of the pilet's content. Should be

@@ -25,0 +31,0 @@ * accurate to allow caching.

@@ -9,2 +9,3 @@ import { PiletMetadata, AvailableDependencies, PiletDependencyGetter } from './types';

link?: string;
requireRef?: string;
hash: string;

@@ -11,0 +12,0 @@ noCache?: string | boolean;

{
"name": "piral-base",
"version": "0.11.0-pre.937",
"version": "0.11.0-pre.942",
"description": "The base library for creating a Piral instance.",

@@ -39,3 +39,3 @@ "keywords": [

},
"gitHead": "cbf15ae350358a406b53eea1774105ab4b02709c"
"gitHead": "d8b76fd7dbc640799c7498884dfbfac8d8209ba1"
}

@@ -15,3 +15,3 @@ import { PiletApp, AvailableDependencies, PiletExports } from './types';

function checkPiletApp(app?: PiletApp): PiletApp {
function checkPiletApp(name: string, app?: PiletApp): PiletApp {
if (!app) {

@@ -30,2 +30,6 @@ console.error('Invalid module found.', name);

function getLocalRequire(dependencies: AvailableDependencies = {}) {
return (moduleName: string) => requireModule(moduleName, dependencies);
}
/**

@@ -39,7 +43,7 @@ * Compiles the given content from a generic dependency.

*/
export function evalDependency(name: string, content: string, link = '', dependencies: AvailableDependencies = {}) {
export function evalDependency(name: string, content: string, link = '', dependencies?: AvailableDependencies) {
const mod = {
exports: {},
} as PiletExports;
const require = (moduleName: string) => requireModule(moduleName, dependencies);
const require = getLocalRequire(dependencies);

@@ -69,6 +73,37 @@ try {

link = '',
dependencies: AvailableDependencies = {},
dependencies?: AvailableDependencies,
): Promise<PiletApp> {
const app = evalDependency(name, content, link, dependencies);
return Promise.resolve(app).then(checkPiletApp);
return Promise.resolve(app).then(app => checkPiletApp(name, app));
}
declare global {
interface HTMLScriptElement {
app?: PiletApp;
}
}
/**
* Includes the given script via its URL with a dependency resolution.
* @param name The name of the dependency to include.
* @param link The link to the dependency.
* @param requireRef The name of the global require to inject.
* @param dependencies The globally available dependencies.
* @returns The evaluated module.
*/
export function includeDependency(
name: string,
link: string,
requireRef: string,
dependencies?: AvailableDependencies,
) {
return new Promise<PiletApp>(resolve => {
const s = document.createElement('script');
s.async = true;
s.src = link;
window[requireRef] = getLocalRequire(dependencies);
s.onload = () => resolve(checkPiletApp(name, s.app));
s.onerror = () => resolve(checkPiletApp(name));
document.body.appendChild(s);
});
}
import { isfunc, createEmptyModule, getDependencyResolver } from './utils';
import { defaultFetchDependency } from './fetch';
import { compileDependency } from './dependency';
import { compileDependency, includeDependency } from './dependency';
import {

@@ -11,9 +11,9 @@ PiletMetadata,

AvailableDependencies,
PiletApp,
} from './types';
function loadFromContent(
function loadFrom(
meta: PiletMetadata,
content: string,
getDependencies: PiletDependencyGetter,
link?: string,
loader: (dependencies: AvailableDependencies) => Promise<PiletApp>,
): Promise<Pilet> {

@@ -23,3 +23,3 @@ const dependencies = {

};
return compileDependency(meta.name, content, link, dependencies).then(app => ({
return loader(dependencies).then(app => ({
...app,

@@ -52,7 +52,12 @@ ...meta,

): Promise<Pilet> {
const { link, content } = meta;
const retrieve = link ? fetchDependency(link) : content ? Promise.resolve(content) : undefined;
const { link, content, requireRef } = meta;
if (retrieve) {
return retrieve.then(content => loadFromContent(meta, content, getDependencies, link));
if (requireRef) {
return loadFrom(meta, getDependencies, deps => includeDependency(meta.name, link, requireRef, deps));
} else if (link) {
return fetchDependency(link).then(content =>
loadFrom(meta, getDependencies, deps => compileDependency(meta.name, content, link, deps)),
);
} else if (content) {
return loadFrom(meta, getDependencies, deps => compileDependency(meta.name, content, link, deps));
} else {

@@ -59,0 +64,0 @@ console.warn('Empty pilet found!', meta.name);

@@ -23,2 +23,8 @@ /**

/**
* The reference name for the global require.
* If set this wil trigger the script mode instead of the eval
* mode.
*/
requireRef?: string;
/**
* The computed hash value of the pilet's content. Should be

@@ -25,0 +31,0 @@ * accurate to allow caching.

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc