New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

eslang

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslang - npm Package Compare versions

Comparing version

to
1.0.7

18

es/operators/import.js

@@ -94,3 +94,4 @@ 'use strict'

// try to locate the source in dirs.
var uri = type ? source : resolve(appHome, moduleUri, appendExt(source))
var uri = type ? source // native module
: resolve(space, appHome, moduleUri, appendExt(source))
if (!uri) {

@@ -125,3 +126,3 @@ return null

function resolve (appHome, moduleUri, source) {
function resolve (space, appHome, moduleUri, source) {
var loader = $void.loader

@@ -136,3 +137,4 @@ var isResolved = loader.isResolved(source)

appHome + '/modules',
$void.$env('home') + '/modules',
$void.$env('user-home') + '/.es/modules',
$void.$env('home') + '/modules', // working dir
$void.runtime('home') + '/modules'

@@ -144,2 +146,8 @@ )

}
// try to load native Espresso modules.
if ($void.require.resolve) {
return $void.require.resolve(source,
space.local['-app-dir'], $void.$env('user-home'), $void
)
}
warn('import', 'failed to resolve', source, 'in', dirs)

@@ -149,7 +157,7 @@ return null

function dirsOf (source, moduleDir, appDir, homeDir, runtimeDir) {
function dirsOf (source, moduleDir, appDir, userDir, homeDir, runtimeDir) {
return moduleDir
? source.startsWith('./') || source.startsWith('../')
? [ moduleDir ]
: [ appDir, homeDir, runtimeDir, moduleDir ]
: [ runtimeDir, appDir, userDir, homeDir ]
: [ runtimeDir ] // for dynamic or unknown-source code.

@@ -156,0 +164,0 @@ }

@@ -27,3 +27,3 @@ 'use strict'

// look into current space to have the base uri.
return loadData(space, space.local['-app'], space.local['-module'],
return loadData(space, space.local['-app-dir'], space.local['-module'],
evaluate(clist[1], space),

@@ -34,3 +34,3 @@ clist.length > 2 ? evaluate(clist[2], space) : null

function loadData (space, appUri, moduleUri, source, args) {
function loadData (space, appDir, moduleUri, source, args) {
if (!source || typeof source !== 'string') {

@@ -40,4 +40,4 @@ warn('load', 'invalid source:', source)

}
// try to locate the sourcevar uri
var uri = resolve(appUri, moduleUri, appendExt(source))
// try to locate the source uri
var uri = resolve(appDir, moduleUri, appendExt(source))
if (typeof uri !== 'string') {

@@ -73,3 +73,3 @@ return null

function resolve (appUri, moduleUri, source) {
function resolve (appDir, moduleUri, source) {
if (!moduleUri) {

@@ -80,7 +80,4 @@ warn('load', "It's forbidden to load a module", 'from an anonymous module.')

var loader = $void.loader
var dirs = loader.isResolved(source) ? [] : dirsOf(source,
loader.dir(moduleUri),
loader.dir(appUri),
$void.$env('home')
)
var dirs = loader.isResolved(source) ? []
: dirsOf(source, loader.dir(moduleUri), appDir)
var uri = loader.resolve(source, dirs)

@@ -98,6 +95,6 @@ if (typeof uri !== 'string') {

function dirsOf (source, moduleDir, appDir, homeDir) {
function dirsOf (source, moduleDir, appDir) {
return source.startsWith('./') || source.startsWith('../')
? [ moduleDir ]
: [ moduleDir, appDir, homeDir, $void.runtime('home') ]
: [ moduleDir, appDir, $void.$env('home'), $void.runtime('home') ]
}

@@ -104,0 +101,0 @@

@@ -10,2 +10,3 @@ 'use strict'

var execute = $void.execute
var appendExt = $void.appendExt
var atomicArrayOf = $void.atomicArrayOf

@@ -24,7 +25,5 @@

}
if (!appSource.endsWith('.es')) {
appSource += '.es'
}
// try to resolve the uri for source
var loader = $void.loader
appSource = appendExt(appSource)
var uri = loader.resolve(appSource, [

@@ -31,0 +30,0 @@ appHome, $void.runtime('home')

@@ -22,2 +22,3 @@ 'use strict'

var loader = $void.loader
var appendExt = $void.appendExt

@@ -68,6 +69,3 @@ // customize native runtime by a profile.

for (var i = 0; i < targets.length; i++) {
var target = targets[i]
if (!target.endsWith('.es')) {
target += '.es'
}
var target = appendExt(targets[i])
var file = loader.resolve(target, [PWD, PWD + '/test'])

@@ -74,0 +72,0 @@ if (typeof file === 'string') { // load test suites

'use strict'
var fs = require('fs')
var path = require('path')

@@ -90,2 +91,70 @@ var modules = require('../modules')

// avoid to reload profiles for the same package.
var nativeEspressoModules = Object.create(null)
// try to resolve a compatible Espresso NPM module.
modules.resolve = function (source, appDir, userHome, $void) {
// try to split package name and module (file) path.
var offset = source.indexOf('/')
var pack = offset > 0 ? source.substring(0, offset) : source
var mod = (offset > 0 && source.substring(offset + 1)) || pack
// a trailing folder separator indicates a folder.
if (mod.endsWith('/')) {
while (mod.endsWith('/')) {
mod = mod.substring(0, mod.length - 1)
}
// the <default> module has the same name of its container folder.
// or, when multiple trailing '/', falls back to package name again.
mod = mod ? path.join(mod, path.basename(mod)) : pack
}
// try to resolve the package by underlying require.resolve logic.
var paths = pathsOf(appDir, userHome)
var dir = tryToResolveDir(pack, paths)
if (typeof dir !== 'string') {
// when no conflict in installation, the @eslang prefix can be skipped.
dir = tryToResolveDir('@eslang/' + pack, paths)
if (typeof dir !== 'string') {
$void.$warn('modules:resolve', 'failed to resolve', moduleUri, 'for', dir)
return null
}
}
// the npm package must has package.json and an es folder.
var uri = path.join(dir, 'es', mod)
if (!fs.existsSync(uri) || !fs.existsSync(path.join(dir, 'package.json'))) {
$void.$warn('modules:resolve', 'failed to resolve', moduleUri, 'at', dir)
return null
}
// try to prepare native dependencies.
if (!nativeEspressoModules[dir]) {
nativeEspressoModules[dir] = true
if (!tryToMount(dir)) {
$void.$warn('modules:resolve',
'an Espresso module without native dependency does not need to be ' +
'published as a npm package.', [moduleUri, dir])
return null
}
}
// the Espresso module is ready to be imported.
return uri
}
function pathsOf (appDir, userHome) {
return appDir.endsWith('/es') && fs.existsSync(
path.resolve(appDir, '../package.json')
) ? [ // for a (possibly) compatible Espresso npm package.
path.resolve(appDir, '../node_modules'),
path.join(userHome, '.es/node_modules')
] : [ // for a single Espresso app file, only check shared modules.
path.join(userHome, '.es/node_modules')
]
}
function tryToResolveDir (pack, paths) {
try {
return path.dirname(require.resolve(pack, { paths: paths }))
} catch (err) {
return err
}
}
module.exports = modules
{
"name": "eslang",
"version": "1.0.6",
"version": "1.0.7",
"author": {

@@ -17,2 +17,3 @@ "email": "leevi@nirlstudio.com",

"espresso-lang",
"s-expression",
"script language",

@@ -19,0 +20,0 @@ "programming lang",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet