Merge branch 'main' into Aristo3

This commit is contained in:
daboe01
2024-05-24 16:07:32 +02:00
committed by GitHub
27 changed files with 526 additions and 8215 deletions
+6 -5
View File
@@ -5,9 +5,9 @@ name: Node build
on:
push:
branches: [ node ]
branches: [ main ]
pull_request:
branches: [ node ]
branches: [ main ]
jobs:
build:
@@ -16,18 +16,19 @@ jobs:
strategy:
matrix:
node-version: [16.x, 17.x]
node-version: [17.x, 18.x, 19.x, 20.x, 21.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: echo "${PWD}/dist/cappuccino/bin" >> $GITHUB_PATH
- run: echo "${PWD}/dist/objective-j/bin" >> $GITHUB_PATH
- run: npm install
- run: npm update
- run: jake dist
- run: jake test-only
@@ -385,6 +385,18 @@ CPAMPMDateType = 6;
return;
}
// if we enter a day that is too high for the current month
// we need to increase the month by one
// if we do not do this, the user input would be silently reset
// very poor user experience
if (parseInt(anObjectValue, 10) > [dateValue _daysInMonth])
{
[_datePickerElementView._textFieldMonth setIntValue:(dateValue.getMonth() + 2)];
[super setObjectValue:objectValue];
return;
}
[super setObjectValue:objectValue];
break;
+8 -9
View File
@@ -1053,7 +1053,7 @@ Sets the selection to a range of characters in response to user action.
[[_window platformWindow] _propagateCurrentDOMEvent:YES]; // for the _CPNativeInputManager (necessary at least on FF and chrome)
if (![_CPNativeInputManager isNativeInputFieldActive] && [event charactersIgnoringModifiers].charCodeAt(0) != 229) // filter out 229 because this would be inserted in chrome on each deadkey
if (![_CPNativeInputManager isNativeInputFieldActive] && ![_CPNativeInputManager isDeadKey:event])
[self interpretKeyEvents:[event]];
[_caret setPermanentlyVisible:YES];
@@ -2638,7 +2638,14 @@ var _CPCopyPlaceholder = '-';
{
return _CPNativeInputFieldActive;
}
+ (void)isDeadKey:(CPEvent)event
{
#if PLATFORM(DOM)
return event._DOMEvent && (event._DOMEvent.key == 'Dead' || event._DOMEvent.key == 'Process');
#endif
return NO;
}
+ (void)cancelCurrentNativeInputSession
{
@@ -2713,14 +2720,6 @@ var _CPCopyPlaceholder = '-';
var charCode = _CPNativeInputField.innerHTML.charCodeAt(0);
// å and Å need to be filtered out in keyDown: due to chrome inserting 229 on a deadkey
if (charCode == 229 || charCode == 197)
{
[currentFirstResponder insertText:_CPNativeInputField.innerHTML];
_CPNativeInputField.innerHTML = '';
return;
}
// chrome-trigger: keypressed is omitted for deadkeys
if (!_CPNativeInputFieldActive && _CPNativeInputFieldKeyPressedCalled == NO && _CPNativeInputField.innerHTML.length && _CPNativeInputField.innerHTML != _CPCopyPlaceholder && _CPNativeInputField.innerHTML.length < 3)
{
+12 -1
View File
@@ -44,6 +44,7 @@
@class CPClipView
@class CPScrollView
@class CALayer
@class CPBinder
@global appkit_tag_dom_elements
@@ -232,7 +233,7 @@ var CPViewHighDPIDrawingEnabled = YES;
JSObject _ephemeralSubviews;
JSObject _ephemeralSubviewsForNames;
CPSet _ephereralSubviews;
CPSet _ephemeralSubviews;
// Key View Support
CPView _nextKeyView;
@@ -3733,6 +3734,16 @@ var CPAppearanceVibrantDark = [CPAppearance appearanceNamed:CPAppearanceNameVibr
[owners[i] updateTrackingAreas];
}
// needed by CPWindow's releasedWhenClosed property
- (void)_releaseRecursively
{
[_subviews makeObjectsPerformSelector:@selector(_releaseRecursively)];
[self _removeObservers];
[CPBinder unbindAllForObject:self];
[self removeFromSuperview];
}
@end
var CPViewAutoresizingMaskKey = @"CPViewAutoresizingMask",
+4
View File
@@ -186,6 +186,7 @@ var CPWindowActionMessageKeys = [
BOOL _constrainsToUsableScreen;
unsigned _shadowStyle;
BOOL _showsResizeIndicator;
BOOL _releasedWhenClosed @accessors(property=releasedWhenClosed);
int _positioningMask;
CGRect _positioningScreenRect;
@@ -2540,6 +2541,9 @@ CPTexturedBackgroundWindowMask
[_parentWindow removeChildWindow:self];
[self _orderOutRecursively:NO];
[self _detachFromChildrenClosing:!_parentWindow];
if (_releasedWhenClosed)
[_contentView _releaseRecursively];
}
- (void)_detachFromChildrenClosing:(BOOL)shouldCloseChildren
-1
View File
@@ -8,7 +8,6 @@ function callbackFunction(blendtask) {
callback(blendtask);
}
$BUILD_CJS_BLENDTASK = path.join($BUILD_CJS_CAPPUCCINO, "lib", "cappuccino", "jake", "blendtask.j");
var promise = new Promise((resolve, reject) => {
+1 -2
View File
@@ -23,7 +23,6 @@ var promise = new Promise((resolve, reject) => {
require("../../../CommonJS/lib/cappuccino/jake.js").initilize(callbackFunction);
async function defineBlendTask() {
await exports.blend ("Aristo2.blend", function(aristoTask)
{
@@ -37,4 +36,4 @@ async function defineBlendTask() {
task ("build", ["Aristo2.blend"]);
}
exports.jakePromise = promise;
exports.jakePromise = promise;
@@ -320,8 +320,8 @@
lhs = lhs.stripDiacritics();
rhs = rhs.stripDiacritics();
}
var commut = (_options & CPCaseInsensitivePredicateOption) ? "gi":"g",
reg = new RegExp(rhs.escapeForRegExp(),commut);
var commut = (_options & CPCaseInsensitivePredicateOption) ? "i":"",
reg = new RegExp("^" + rhs.escapeForRegExp() + "$",commut);
return reg.test(lhs);
case CPBeginsWithPredicateOperatorType: var range = CPMakeRange(0, MIN([lhs length], [rhs length]));
+10
View File
@@ -570,6 +570,16 @@ var CPStringNull = [CPNull null];
return aString && aString != "" && self.indexOf(aString) == 0;
}
/*!
Returns \c YES if the receiver contains
the specified string. If \c aString
is empty, the method will return \c NO.
*/
- (BOOL)containsString:(CPString)aString
{
return aString && aString != "" && self.indexOf(aString) >= 0;
}
/*!
Returns \c YES if the receiver ends
with the specified string. If \c aString
+25
View File
@@ -154,6 +154,31 @@ var CPURLConnectionDelegate = nil;
return [[self alloc] _initWithRequest:aRequest queue:aQueue completionHandler:aHandler];
}
/*
Loads the data for a URL request and returns a Promise.
@param aRequest contains the URL to obtain data from.
@discussion If the request completes successfully, the data parameter of the function contains the resource data, and the error parameter is nil. If the request fails, the data parameter is nil and the error parameter contain information about the failure.
Typical use can be like this:
- (async @action)doAction:(id)sender {
const { response, data, error } = await [CPURLConnection sendAsynchronousRequest:[CPURLRequest requestWithURL:@"http://cappuccino.dev"]];
if (error == nil) {
//do the stuff...
} else {
// Handle errors
}
}
*/
+ (async JSObject /* { response: CPURLResponse, data: CPData, error: CPError } */)sendAsynchronousRequest:(CPURLRequest)aRequest
{
return new Promise((resolve, reject) =>
[[self alloc] _initWithRequest:aRequest
queue:[CPOperationQueue mainQueue]
completionHandler:(aResponse, aData, anError) => resolve( {response: aResponse, data: aData, error:anError })]
);
}
/*
Creates a url connection with a delegate to monitor the request progress.
@param aRequest contains the URL to obtain data from
+1 -1
View File
@@ -447,7 +447,7 @@ BundleTask.prototype.defineResourceTask = function(aResourcePath, aDestinationPa
filedir(cibDestinationPath, [aResourcePath], function()
{
try {
child_process.execSync("nib2cib " + aResourcePath + " " + cibDestinationPath + " " + nib2cibFlags, {stdio: 'inherit'});
child_process.execSync("nib2cib '" + aResourcePath + "' '" + cibDestinationPath + "' " + nib2cibFlags, {stdio: 'inherit'});
} catch(error) {
console.log(error);
console.log(error.output.toString());
+1 -1
View File
@@ -66,7 +66,7 @@ FileExecutable.prototype = new Executable();
var compile = function(self, fileContents, aURL, compilerOptions, aFilenameTranslateDictionary)
{
var acornOptions = compilerOptions.acornOptions || (compilerOptions.acornOptions = {});
var acornOptions = compilerOptions.acornOptions || (compilerOptions.acornOptions = {ecmaVersion: 2022});
acornOptions.preprocessGetIncludeFile = function(filePath, isQuoted) {
var referenceURL = new CFURL(".", aURL), // Remove the filename from the url
+3 -3
View File
@@ -47,9 +47,9 @@
#include "StaticResource.js"
#include "Preprocessor.js"
#include "source-map.js"
#include "acorn.js"
#include "acornwalk.js"
#include "ObjJAcornCompiler.js"
#include "../node_modules/acorn-walk/dist/walk.js"
#include "../node_modules/objj-parser/dist/objj-parser.js"
#include "../node_modules/objj-transpiler/dist/objj-transpiler.cjs"
#include "FileDependency.js"
#include "Executable.js"
#include "FileExecutable.js"
+4 -4
View File
@@ -35,10 +35,10 @@ var path = require("path");
var fs = require("fs");
var terser = require("terser");
var walk = require("./acornwalk").acorn.walk;
var walk = require("acorn-walk");
acorn = {walk: walk};
acorn = require("./acorn").acorn;
var compiler = require("./ObjJAcornCompiler").ObjJCompiler;
acorn = require("objj-parser");
var compiler = require("objj-transpiler");
const term = ObjectiveJ.term;
const utilsFile = ObjectiveJ.utils.file;
@@ -136,7 +136,7 @@ async function gcc(inputFilePath, outputFilePath, flags, compress)
term.stream.print("Building... \0green(" + outputFilePath +"\0)");
var source = fs.readFileSync(inputFilePath, { charset : "utf8" }).toString();
var compilerOptions = compiler.parseGccCompilerFlags(flags.join(" "));
var acornOptions = compilerOptions.acornOptions || (compilerOptions.acornOptions = {});
var acornOptions = compilerOptions.acornOptions || (compilerOptions.acornOptions = {ecmaVersion: 2022});
acornOptions.preprocessGetIncludeFile = function(filePath, isQuoted) {
var includeContent = fs.readFileSync(filePath, { charset : "utf8" }).toString();
File diff suppressed because it is too large Load Diff
-3885
View File
File diff suppressed because it is too large Load Diff
-23
View File
@@ -1,23 +0,0 @@
Copyright (C) 2012 by Marijn Haverbeke <marijnh@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Please note that some subdirectories of the CodeMirror distribution
include their own LICENSE files, and are released under different
licences.
-285
View File
@@ -1,285 +0,0 @@
// AST walker module for Mozilla Parser API compatible trees
if (!exports.acorn) {
exports.acorn = {};
exports.acorn.walk = {};
}
(function(exports) {
"use strict";
// A simple walk is one where you simply specify callbacks to be
// called on specific nodes. The last two arguments are optional. A
// simple use would be
//
// walk.simple(myTree, {
// Expression: function(node) { ... }
// });
//
// to do something with all expressions. All Parser API node types
// can be used to identify node types, as well as Expression,
// Statement, and ScopeBody, which denote categories of nodes.
//
// The base argument can be used to pass a custom (recursive)
// walker, and state can be used to give this walked an initial
// state.
exports.simple = function(node, visitors, base, state) {
if (!base) base = exports;
function c(node, st, override) {
var type = override || node.type, found = visitors[type];
if (found) found(node, st);
base[type](node, st, c);
}
c(node, state);
};
// A recursive walk is one where your functions override the default
// walkers. They can modify and replace the state parameter that's
// threaded through the walk, and can opt how and whether to walk
// their child nodes (by calling their third argument on these
// nodes).
exports.recursive = function(node, state, funcs, base) {
var visitor = exports.make(funcs, base);
function c(node, st, override) {
return visitor[override || node.type](node, st, c);
}
return c(node, state);
};
// Used to create a custom walker. Will fill in all missing node
// type properties with the defaults.
exports.make = function(funcs, base) {
if (!base) base = exports;
var visitor = {};
for (var type in base) visitor[type] = base[type];
for (var type in funcs) visitor[type] = funcs[type];
return visitor;
};
function skipThrough(node, st, c) { c(node, st); }
function ignore(node, st, c) {}
// Node walkers.
exports.Program = exports.BlockStatement = function(node, st, c) {
for (var i = 0; i < node.body.length; ++i) {
c(node.body[i], st, "Statement");
}
};
exports.Statement = skipThrough;
exports.EmptyStatement = ignore;
exports.ExpressionStatement = function(node, st, c) {
c(node.expression, st, "Expression");
};
exports.IfStatement = function(node, st, c) {
c(node.test, st, "Expression");
c(node.consequent, st, "Statement");
if (node.alternate) c(node.alternate, st, "Statement");
};
exports.LabeledStatement = function(node, st, c) {
c(node.body, st, "Statement");
};
exports.BreakStatement = exports.ContinueStatement = ignore;
exports.WithStatement = function(node, st, c) {
c(node.object, st, "Expression");
c(node.body, st, "Statement");
};
exports.SwitchStatement = function(node, st, c) {
c(node.discriminant, st, "Expression");
for (var i = 0; i < node.cases.length; ++i) {
var cs = node.cases[i];
if (cs.test) c(cs.test, st, "Expression");
for (var j = 0; j < cs.consequent.length; ++j)
c(cs.consequent[j], st, "Statement");
}
};
exports.ReturnStatement = function(node, st, c) {
if (node.argument) c(node.argument, st, "Expression");
};
exports.ThrowStatement = function(node, st, c) {
c(node.argument, st, "Expression");
};
exports.TryStatement = function(node, st, c) {
c(node.block, st, "Statement");
if (node.handler) c(node.handler.body, st, "ScopeBody");
if (node.finalizer) c(node.finalizer, st, "Statement");
};
exports.WhileStatement = function(node, st, c) {
c(node.test, st, "Expression");
c(node.body, st, "Statement");
};
exports.DoWhileStatement = function(node, st, c) {
c(node.body, st, "Statement");
c(node.test, st, "Expression");
};
exports.ForStatement = function(node, st, c) {
if (node.init) c(node.init, st, "ForInit");
if (node.test) c(node.test, st, "Expression");
if (node.update) c(node.update, st, "Expression");
c(node.body, st, "Statement");
};
exports.ForInStatement = function(node, st, c) {
c(node.left, st, "ForInit");
c(node.right, st, "Expression");
c(node.body, st, "Statement");
};
exports.ForInit = function(node, st, c) {
if (node.type == "VariableDeclaration") c(node, st);
else c(node, st, "Expression");
};
exports.DebuggerStatement = ignore;
exports.FunctionDeclaration = function(node, st, c) {
c(node, st, "Function");
};
exports.VariableDeclaration = function(node, st, c) {
for (var i = 0; i < node.declarations.length; ++i) {
var decl = node.declarations[i];
if (decl.init) c(decl.init, st, "Expression");
}
};
exports.Function = function(node, st, c) {
c(node.body, st, "ScopeBody");
};
exports.ScopeBody = function(node, st, c) {
c(node, st, "Statement");
};
exports.Expression = skipThrough;
exports.ThisExpression = ignore;
exports.ArrayExpression = exports.ArrayLiteral = function(node, st, c) {
for (var i = 0; i < node.elements.length; ++i) {
var elt = node.elements[i];
if (elt) c(elt, st, "Expression");
}
};
exports.DictionaryLiteral = function(node, st, c) {
for (var i = 0; i < node.keys.length; i++) {
var key = node.keys[i];
c(key, st, "Expression");
var value = node.values[i];
c(value, st, "Expression");
}
};
exports.ObjectExpression = function(node, st, c) {
for (var i = 0; i < node.properties.length; ++i)
c(node.properties[i].value, st, "Expression");
};
exports.FunctionExpression = exports.FunctionDeclaration;
exports.SequenceExpression = function(node, st, c) {
for (var i = 0; i < node.expressions.length; ++i)
c(node.expressions[i], st, "Expression");
};
exports.UnaryExpression = exports.UpdateExpression = function(node, st, c) {
c(node.argument, st, "Expression");
};
exports.BinaryExpression = exports.AssignmentExpression = exports.LogicalExpression = function(node, st, c) {
c(node.left, st, "Expression");
c(node.right, st, "Expression");
};
exports.ConditionalExpression = function(node, st, c) {
c(node.test, st, "Expression");
c(node.consequent, st, "Expression");
c(node.alternate, st, "Expression");
};
exports.NewExpression = exports.CallExpression = function(node, st, c) {
c(node.callee, st, "Expression");
if (node.arguments) for (var i = 0; i < node.arguments.length; ++i)
c(node.arguments[i], st, "Expression");
};
exports.MemberExpression = function(node, st, c) {
c(node.object, st, "Expression");
if (node.computed) c(node.property, st, "Expression");
};
exports.Identifier = exports.Literal = ignore;
exports.ClassDeclarationStatement = function(node, st, c) {
if (node.ivardeclarations) for (var i = 0; i < node.ivardeclarations.length; ++i) {
c(node.ivardeclarations[i], st, "IvarDeclaration");
}
for (var i = 0; i < node.body.length; ++i) {
c(node.body[i], st, "Statement");
}
}
exports.ImportStatement = ignore;
exports.IvarDeclaration = ignore;
exports.PreprocessStatement = ignore;
exports.ClassStatement = ignore;
exports.GlobalStatement = ignore;
exports.ProtocolDeclarationStatement = function(node, st, c) {
if (node.required) for (var i = 0; i < node.required.length; ++i) {
c(node.required[i], st, "Statement");
}
if (node.optional) for (var i = 0; i < node.optional.length; ++i) {
c(node.optional[i], st, "Statement");
}
}
exports.TypeDefStatement = ignore;
exports.MethodDeclarationStatement = function(node, st, c) {
var body = node.body;
if (body)
c(body, st, "Statement");
}
exports.MessageSendExpression = function(node, st, c) {
if (!node.superObject) c(node.object, st, "Expression");
if (node.arguments) for (var i = 0; i < node.arguments.length; ++i)
c(node.arguments[i], st, "Expression");
if (node.parameters) for (var i = 0; i < node.parameters.length; ++i)
c(node.parameters[i], st, "Expression");
}
exports.SelectorLiteralExpression = ignore;
exports.ProtocolLiteralExpression = ignore;
exports.Reference = function(node, st, c) {
c(node.element, st, "Identifier");
}
exports.Dereference = function(node, st, c) {
c(node.expr, st, "Expression");
}
// A custom walker that keeps track of the scope chain and the
// variables defined in it.
function makeScope(prev) {
return {vars: Object.create(null), prev: prev};
}
exports.scopeVisitor = exports.make({
Function: function(node, scope, c) {
var inner = makeScope(scope);
for (var i = 0; i < node.params.length; ++i)
inner.vars[node.params[i].name] = {type: "argument", node: node.params[i]};
if (node.id) {
var decl = node.type == "FunctionDeclaration";
(decl ? scope : inner).vars[node.id.name] =
{type: decl ? "function" : "function name", node: node.id};
}
c(node.body, inner, "ScopeBody");
},
TryStatement: function(node, scope, c) {
c(node.block, scope, "Statement");
if (node.handler) {
var inner = makeScope(scope);
inner.vars[node.handler.param.name] = {type: "catch clause", node: node.handler.param};
c(node.handler.body, inner, "ScopeBody");
}
if (node.finalizer) c(node.finalizer, scope, "Statement");
},
VariableDeclaration: function(node, scope, c) {
for (var i = 0; i < node.declarations.length; ++i) {
var decl = node.declarations[i];
scope.vars[decl.id.name] = {type: "var", node: decl.id};
if (decl.init) c(decl.init, scope, "Expression");
}
}
});
})(typeof exports == "undefined" ? acorn.walk = {} : exports.acorn.walk);
-1
View File
@@ -8,7 +8,6 @@ var fs = require("fs"),
- (void)testFormatSniffing
{
debugger;
var XMLPropertyLists = new FileList(path.join(path.dirname(__filename), "PropertyLists", "XML-*.plist"));
XMLPropertyLists.forEach(function(/*String*/ aPath)
@@ -60,12 +60,12 @@ async function compressor(srcCode) {
correctInlined = fs.existsSync(p) ? fs.readFileSync(p, {encoding: "utf8"}) : correct; // Get inlined version if it exists. Otherwise use the regular one.
await [self assertNoThrow: async function() {
preprocessed = ObjectiveJ.ObjJCompiler.compile(unpreprocessed, nil, {includeMethodFunctionNames: true, includeMethodArgumentTypeSignatures: true, includeIvarTypeSignatures: true, inlineMsgSendFunctions: false, transformNamedFunctionDeclarationToAssignment: true}).jsBuffer.toString();
preprocessed = ObjectiveJ.ObjJCompiler.compile(unpreprocessed, nil, {includeMethodFunctionNames: true, includeMethodArgumentTypeSignatures: true, includeIvarTypeSignatures: true, inlineMsgSendFunctions: false, transformNamedFunctionDeclarationToAssignment: true, acornOptions: {ecmaVersion: 2022}}).jsBuffer.toString();
preprocessed = await compressor(preprocessed);
correct = await compressor(correct);
// Get an Inlined version
preprocessedInlined = ObjectiveJ.ObjJCompiler.compile(unpreprocessed, nil, {includeMethodFunctionNames: true, includeMethodArgumentTypeSignatures: true, includeIvarTypeSignatures: true, inlineMsgSendFunctions: true, transformNamedFunctionDeclarationToAssignment: true}).jsBuffer.toString();
preprocessedInlined = ObjectiveJ.ObjJCompiler.compile(unpreprocessed, nil, {includeMethodFunctionNames: true, includeMethodArgumentTypeSignatures: true, includeIvarTypeSignatures: true, inlineMsgSendFunctions: true, transformNamedFunctionDeclarationToAssignment: true, acornOptions: {ecmaVersion: 2022}}).jsBuffer.toString();
preprocessedInlined = await compressor(preprocessedInlined);
correctInlined = await compressor(correctInlined);
}];
+2 -2
View File
@@ -24,9 +24,9 @@ task ("build", function()
minorVersion = parseInt(versions[1], 10),
buildVersion = parseInt(versions[2], 10);
if (!((majorVersion == 11) || (majorVersion == 10 && minorVersion >= 12)))
if (!((majorVersion >= 11) || (majorVersion == 10 && minorVersion >= 13)))
{
colorPrint("XcodeCapp requires at least macOS Sierra.", "red");
colorPrint("XcodeCapp requires at least macOS High Sierra.", "red");
p.stdin.close();
p.stdout.close();
@@ -444,7 +444,6 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
DEPLOYMENT_LOCATION = YES;
DSTROOT = /;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -463,7 +462,7 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INSTALL_PATH = $USER_APPS_DIR;
MACOSX_DEPLOYMENT_TARGET = 10.8;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
@@ -494,7 +493,6 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEPLOYMENT_LOCATION = YES;
DSTROOT = /;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
@@ -506,7 +504,7 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INSTALL_PATH = $USER_APPS_DIR;
MACOSX_DEPLOYMENT_TARGET = 10.8;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
};
@@ -518,11 +516,12 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
DSTROOT = /;
INFOPLIST_FILE = XcodeCapp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = XcodeCapp;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INSTALL_PATH = "$(LOCAL_APPS_DIR)";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = org.cappuccino.xcodecapp;
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -534,11 +533,12 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_OBJC_ARC = YES;
COMBINE_HIDPI_IMAGES = YES;
DSTROOT = /;
INFOPLIST_FILE = XcodeCapp/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = XcodeCapp;
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools";
INSTALL_PATH = "$(LOCAL_APPS_DIR)";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
MACOSX_DEPLOYMENT_TARGET = 10.13;
PRODUCT_BUNDLE_IDENTIFIER = org.cappuccino.xcodecapp;
PRODUCT_NAME = "$(TARGET_NAME)";
};
+3 -1
View File
@@ -40,7 +40,9 @@
self.environment[@"NARWHAL_ENGINE"] = @"jsc";
self.environment[@"CAPP_NOSUDO"] = @"1";
self.executables = @[@"python", @"objj", @"nib2cib",@"objj2objcskeleton", @"capp_lint", @"touch"];
//self.executables = @[@"python", @"objj", @"nib2cib",@"objj2objcskeleton", @"capp_lint", @"touch"];
// Removed python and capp_liunt as python2 is not supported anymore.
self.executables = @[@"objj", @"nib2cib",@"objj2objcskeleton", @"touch"];
self.isValid = [self _checkExecutables];
}
+16 -6
View File
@@ -4,14 +4,11 @@
var fs = require("fs"),
acorn = require("objj-parser"),
walk = require("objj-parser/util/walk"),
walk = require("acorn-walk"),
stream = ObjectiveJ.term;
debugger;
function main(args)
{
debugger;
args.shift();
if (args.length < 1)
@@ -40,6 +37,8 @@ function raise(pos, message)
throw syntaxError;
}
function ignore(_node, _st, _c) {}
var errors = [],
xcc = walk.make(
{
@@ -115,7 +114,18 @@ var errors = [],
else
raise(node.loc.start, "Action methods must have exactly one parameter");
}
}
},
TypeDefStatement: ignore,
ClassStatement: ignore,
MessageSendExpression: ignore,
GlobalStatement: ignore,
ProtocolDeclarationStatement: ignore,
ArrayLiteral: ignore,
Reference: ignore,
DictionaryLiteral: ignore,
Dereference: ignore,
ImportStatement: ignore,
SelectorLiteralExpression: ignore
}
);
@@ -154,7 +164,7 @@ function parser(args)
outputHeaderURL = new CFURL([outputDirectory stringByAppendingPathComponent:baseFilenameWithNoExtension + ".h"]),
outputImplementationURL = new CFURL([outputDirectory stringByAppendingPathComponent:baseFilenameWithNoExtension + ".m"]),
source = fs.readFileSync(sourcePath, { encoding: "utf8" }),
tokens = acorn.parse(source, { locations:true, sourceFile:sourcePath }),
tokens = acorn.parse(source, { locations:true, sourceFile:sourcePath, ecmaVersion: 2022 }),
classesInformation = [],
ObjectiveCSource = "",
ObjectiveCHeader = "",
+15 -1
View File
@@ -381,7 +381,21 @@ if [ `uname` = "Darwin" ]; then
check_build_environment
# The narwhal-jsc package is already installed within the base kit.
# Xcode 15's version of the 'ld' linker no longer supports
# the '-force_cpusubtype_ALL' flag.
# Although not documented, this may have been included to support PowerPC compilation.
# Removing the flag has been successfully tested on High Sierra/Xcode 10.1
# Testing on all intermediate operating systems and Xcode versions isn't practical,
# or beneficial, given the imminent move to NodeJS.
# We apply the patch here for expediency, rather than in the 'cappuccino-base' repository.
# If a full final release of the narwhal branch is undertaken,
# the change will be applied to cappuccino-base at that time.
# Note: Rosetta2 is still available in macOS Sonoma.
# Compiling for both Intel and Apple Silicon targets requires a testing program
# which is, again, neither practical nor justified at this stage of Narwhal's lifecycle.
sed -i .orig 's/-force_cpusubtype_ALL//g' $install_directory/packages/narwhal-jsc/Makefile
# This autoreconf command improves compatibility with MacPorts, but only works with autoconf 2.65+.
needed_autoconf_major=2
needed_autoconf_minor=65
+387 -43
View File
@@ -1,18 +1,19 @@
{
"name": "@objj/cappuccino",
"version": "1.2.2",
"lockfileVersion": 3,
"version": "1.3.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@objj/cappuccino",
"version": "1.2.2",
"version": "1.3.1",
"license": "LGPL-2.1-or-later",
"dependencies": {
"@objj/jake": "latest",
"@objj/ojtest": "latest",
"@objj/runtime": "latest",
"terser": ">=5.7.0"
"@objj/runtime": "^1.2.2",
"acorn-walk": "^8.2.0",
"terser": "^5.14.2"
},
"bin": {
"capp": "dist/cappuccino/bin/capp",
@@ -36,55 +37,56 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
"integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.24"
"@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/set-array": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/source-map": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
"integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25"
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.15",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"version": "0.3.15",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
"integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
"dependencies": {
"@jridgewell/resolve-uri": "^3.1.0",
"@jridgewell/sourcemap-codec": "^1.4.14"
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"node_modules/@objj/cappuccino": {
@@ -145,9 +147,9 @@
}
},
"node_modules/acorn": {
"version": "8.11.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
"integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
"integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
"bin": {
"acorn": "bin/acorn"
},
@@ -182,9 +184,9 @@
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"node_modules/objj-parser": {
"version": "1.0.0-6",
"resolved": "https://registry.npmjs.org/objj-parser/-/objj-parser-1.0.0-6.tgz",
"integrity": "sha512-k+u9aQM6ve0ofGjFf6nGAXcxkZvN40YvKjxfYe5QLzbcOtuYs5l30ePZlcAw5fLu4JMHmeeU8atRtKX/0SZsLg==",
"version": "1.0.0-4",
"resolved": "https://registry.npmjs.org/objj-parser/-/objj-parser-1.0.0-4.tgz",
"integrity": "sha512-W+38550qhkTZOb6MkZBqnBwMX3PPMbVa5n2trTmWHPU4RlNgE+sV0l9CagBzcFVnXD1cmhnmTNLbF5XAg+DRKA==",
"bin": {
"objj-parser": "bin/objj-parser"
},
@@ -193,9 +195,10 @@
}
},
"node_modules/objj-transpiler": {
"version": "1.0.0-10",
"resolved": "https://registry.npmjs.org/objj-transpiler/-/objj-transpiler-1.0.0-10.tgz",
"integrity": "sha512-w/RyCXmFVIDAw+Is9BC+cK2ZoO1qCu1xvkz3J7+xlqXE00i6oHR03/sXAxlL4A42A6e9CrdbVuEs3+C3wqOv0g==",
"version": "1.0.0-3",
"resolved": "https://registry.npmjs.org/objj-transpiler/-/objj-transpiler-1.0.0-3.tgz",
"integrity": "sha512-CGCs64MCNhXeAuWXZx7yT/UDTZO99t1Jxw/Z+Ec+8eYdzOxEsDfV+YRYrwvZ4ZIpM9uX7CuWHLhcJe2PWacX3w==",
"dependencies": {
"acorn-walk": "8.2.0",
"objj-parser": "^1.0.0-1",
@@ -242,12 +245,12 @@
}
},
"node_modules/terser": {
"version": "5.31.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.31.0.tgz",
"integrity": "sha512-Q1JFAoUKE5IMfI4Z/lkE/E6+SwgzO+x4tq4v1AyBLRj8VSYvRO6A/rQrPg1yud4g0En9EKI1TvFRF2tQFcoUkg==",
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz",
"integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@@ -266,5 +269,346 @@
"node": ">=0.4.0"
}
}
},
"dependencies": {
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
},
"@jridgewell/set-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
},
"@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.15",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
"integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@objj/cappuccino": {
"version": "file:",
"requires": {
"@objj/cappuccino": "file:",
"@objj/jake": "latest",
"@objj/ojtest": "latest",
"@objj/runtime": "^1.2.2",
"acorn-walk": "^8.2.0",
"terser": "^5.14.2"
},
"dependencies": {
"@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"requires": {
"@jridgewell/set-array": "^1.0.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/resolve-uri": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
"integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
},
"@jridgewell/set-array": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
"integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
},
"@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"requires": {
"@jridgewell/gen-mapping": "^0.3.0",
"@jridgewell/trace-mapping": "^0.3.9"
}
},
"@jridgewell/sourcemap-codec": {
"version": "1.4.14",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"@jridgewell/trace-mapping": {
"version": "0.3.15",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
"integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@objj/jake": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@objj/jake/-/jake-1.1.6.tgz",
"integrity": "sha512-mc95h489V7VBV8HPUdwiFuzY075EZhgyWV3XhHUGIjsTqYCutSRPHhpZybENTq1yzyBDfCEZOBmswNjBETcJFQ==",
"requires": {
"@objj/utils": "latest"
}
},
"@objj/ojtest": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@objj/ojtest/-/ojtest-1.0.3.tgz",
"integrity": "sha512-T87JtTVJnXcxWdVHchJwrHuQPZLp0mh4MXCOpoMGffKSU2jbL7l+uxK6KPWRMW/ajjQL/aE5dJKguJohmmYtRg=="
},
"@objj/runtime": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@objj/runtime/-/runtime-1.2.2.tgz",
"integrity": "sha512-poQX4rUBNs6t/nqX2wSMxVo6ad5SshIpMeefgJVRTTP+MUvyjf5ppF5BeVwHVH8HHaJKoXd9XHedZ9vcVlQJWg==",
"requires": {
"@objj/utils": ">=1.0.23",
"@xmldom/xmldom": ">=0.8.10",
"objj-transpiler": "^1.0.0-1",
"readline-history": ">=1.2.0",
"xmlhttprequest-ssl": "^2.0.0"
}
},
"@objj/utils": {
"version": "1.0.24",
"resolved": "https://registry.npmjs.org/@objj/utils/-/utils-1.0.24.tgz",
"integrity": "sha512-KzthoKXSs3LcWDWfl27p/rOCoejcxyy/4DgbacjcxiowJJXa+QMmIsjZ/fcg9lcn13jL0gB4c1x1kGPfrrsZPw=="
},
"@xmldom/xmldom": {
"version": "0.8.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
"integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
},
"acorn": {
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
"integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
},
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
},
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=="
},
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"objj-parser": {
"version": "1.0.0-4",
"resolved": "https://registry.npmjs.org/objj-parser/-/objj-parser-1.0.0-4.tgz",
"integrity": "sha512-W+38550qhkTZOb6MkZBqnBwMX3PPMbVa5n2trTmWHPU4RlNgE+sV0l9CagBzcFVnXD1cmhnmTNLbF5XAg+DRKA=="
},
"objj-transpiler": {
"version": "1.0.0-3",
"resolved": "https://registry.npmjs.org/objj-transpiler/-/objj-transpiler-1.0.0-3.tgz",
"integrity": "sha512-CGCs64MCNhXeAuWXZx7yT/UDTZO99t1Jxw/Z+Ec+8eYdzOxEsDfV+YRYrwvZ4ZIpM9uX7CuWHLhcJe2PWacX3w==",
"requires": {
"acorn-walk": "8.2.0",
"objj-parser": "^1.0.0-1",
"source-map": "0.4.x"
}
},
"readline-history": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/readline-history/-/readline-history-1.2.0.tgz",
"integrity": "sha512-8R0Vr9jhdtqYSdWGpAvkEopvuPKjAlYELIKoa7+7FO2CBN/b88rYB9r9gFSNtdCUHdAOJslj0KDG75MsiozXIQ=="
},
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==",
"requires": {
"amdefine": ">=0.0.4"
}
},
"source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"terser": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz",
"integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==",
"requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
}
},
"xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
}
}
},
"@objj/jake": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/@objj/jake/-/jake-1.1.6.tgz",
"integrity": "sha512-mc95h489V7VBV8HPUdwiFuzY075EZhgyWV3XhHUGIjsTqYCutSRPHhpZybENTq1yzyBDfCEZOBmswNjBETcJFQ==",
"requires": {
"@objj/utils": "latest"
}
},
"@objj/ojtest": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@objj/ojtest/-/ojtest-1.0.3.tgz",
"integrity": "sha512-T87JtTVJnXcxWdVHchJwrHuQPZLp0mh4MXCOpoMGffKSU2jbL7l+uxK6KPWRMW/ajjQL/aE5dJKguJohmmYtRg=="
},
"@objj/runtime": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/@objj/runtime/-/runtime-1.2.2.tgz",
"integrity": "sha512-poQX4rUBNs6t/nqX2wSMxVo6ad5SshIpMeefgJVRTTP+MUvyjf5ppF5BeVwHVH8HHaJKoXd9XHedZ9vcVlQJWg==",
"requires": {
"@objj/utils": ">=1.0.23",
"@xmldom/xmldom": ">=0.8.10",
"objj-transpiler": "^1.0.0-1",
"readline-history": ">=1.2.0",
"xmlhttprequest-ssl": "^2.0.0"
}
},
"@objj/utils": {
"version": "1.0.24",
"resolved": "https://registry.npmjs.org/@objj/utils/-/utils-1.0.24.tgz",
"integrity": "sha512-KzthoKXSs3LcWDWfl27p/rOCoejcxyy/4DgbacjcxiowJJXa+QMmIsjZ/fcg9lcn13jL0gB4c1x1kGPfrrsZPw=="
},
"@xmldom/xmldom": {
"version": "0.8.10",
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
"integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw=="
},
"acorn": {
"version": "8.8.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
"integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
},
"acorn-walk": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
},
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=="
},
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
},
"objj-parser": {
"version": "1.0.0-4",
"resolved": "https://registry.npmjs.org/objj-parser/-/objj-parser-1.0.0-4.tgz",
"integrity": "sha512-W+38550qhkTZOb6MkZBqnBwMX3PPMbVa5n2trTmWHPU4RlNgE+sV0l9CagBzcFVnXD1cmhnmTNLbF5XAg+DRKA=="
},
"objj-transpiler": {
"version": "1.0.0-3",
"resolved": "https://registry.npmjs.org/objj-transpiler/-/objj-transpiler-1.0.0-3.tgz",
"integrity": "sha512-CGCs64MCNhXeAuWXZx7yT/UDTZO99t1Jxw/Z+Ec+8eYdzOxEsDfV+YRYrwvZ4ZIpM9uX7CuWHLhcJe2PWacX3w==",
"requires": {
"acorn-walk": "8.2.0",
"objj-parser": "^1.0.0-1",
"source-map": "0.4.x"
}
},
"readline-history": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/readline-history/-/readline-history-1.2.0.tgz",
"integrity": "sha512-8R0Vr9jhdtqYSdWGpAvkEopvuPKjAlYELIKoa7+7FO2CBN/b88rYB9r9gFSNtdCUHdAOJslj0KDG75MsiozXIQ=="
},
"source-map": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==",
"requires": {
"amdefine": ">=0.0.4"
}
},
"source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
}
}
},
"terser": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz",
"integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==",
"requires": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
}
},
"xmlhttprequest-ssl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
"integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
}
}
}
+4 -3
View File
@@ -1,14 +1,15 @@
{
"name": "@objj/cappuccino",
"version": "1.2.2",
"version": "1.3.1",
"devDependencies": {
"@objj/cappuccino": "file:."
},
"dependencies": {
"@objj/jake": "latest",
"@objj/ojtest": "latest",
"@objj/runtime": "latest",
"terser": ">=5.7.0"
"@objj/runtime": "^1.2.2",
"acorn-walk": "^8.2.0",
"terser": "^5.14.2"
},
"files": [
"dist",