@breakside/jskit 2022.24.0 → 2022.26.0
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/Frameworks/DOM.jsframework/Info.json +2 -2
- package/Frameworks/DOM.jsframework/io.breakside.JSKit.DOM-bundle.js +2 -2
- package/Frameworks/FontKit.jsframework/Info.json +2 -2
- package/Frameworks/FontKit.jsframework/io.breakside.JSKit.FontKit-bundle.js +2 -2
- package/Frameworks/Foundation.jsframework/Info.json +2 -2
- package/Frameworks/Foundation.jsframework/JS/JSFileManager+Node.js +2 -2
- package/Frameworks/Foundation.jsframework/JS/JSURL.js +3 -0
- package/Frameworks/Foundation.jsframework/JS/JSZip.js +97 -76
- package/Frameworks/Foundation.jsframework/io.breakside.JSKit.Foundation-bundle.js +2 -2
- package/Frameworks/SecurityKit.jsframework/Info.json +2 -2
- package/Frameworks/SecurityKit.jsframework/io.breakside.JSKit.SecurityKit-bundle.js +2 -2
- package/Info.json +2 -2
- package/Node/io.breakside.jskit-bundle.js +2 -2
- package/Root/Frameworks/APIKit/Info.yaml +1 -1
- package/Root/Frameworks/APIKitTesting/Info.yaml +1 -1
- package/Root/Frameworks/AuthKit/Info.yaml +1 -1
- package/Root/Frameworks/CSSOM/Info.yaml +1 -1
- package/Root/Frameworks/ChartKit/Info.yaml +1 -1
- package/Root/Frameworks/ConferenceKit/Info.yaml +1 -1
- package/Root/Frameworks/DBKit/Info.yaml +1 -1
- package/Root/Frameworks/DOM/Info.yaml +1 -1
- package/Root/Frameworks/Dispatch/Info.yaml +1 -1
- package/Root/Frameworks/FontKit/Info.yaml +1 -1
- package/Root/Frameworks/Foundation/Info.yaml +1 -1
- package/Root/Frameworks/Foundation/JSFileManager+Node.js +2 -2
- package/Root/Frameworks/Foundation/JSURL.js +3 -0
- package/Root/Frameworks/Foundation/JSZip.js +97 -76
- package/Root/Frameworks/ImageKit/Info.yaml +1 -1
- package/Root/Frameworks/MediaKit/Info.yaml +1 -1
- package/Root/Frameworks/MediaKitUI/Info.yaml +1 -1
- package/Root/Frameworks/NotificationKit/Info.yaml +1 -1
- package/Root/Frameworks/PDFKit/Info.yaml +1 -1
- package/Root/Frameworks/QRKit/Info.yaml +1 -1
- package/Root/Frameworks/SearchKit/Info.yaml +1 -1
- package/Root/Frameworks/SecurityKit/Info.yaml +1 -1
- package/Root/Frameworks/ServerKit/Info.yaml +1 -1
- package/Root/Frameworks/ServerKitTesting/Info.yaml +1 -1
- package/Root/Frameworks/TestKit/Info.yaml +1 -1
- package/Root/Frameworks/UIKit/Info.yaml +1 -1
- package/Root/Frameworks/UIKit/UIBasicAnimation.js +1 -1
- package/Root/Frameworks/UIKit/UICursor.js +19 -4
- package/Root/Frameworks/UIKit/UIHTMLApplication.js +53 -15
- package/Root/Frameworks/UIKit/UIHTMLDisplayServerCanvasContext.js +2 -48
- package/Root/Frameworks/UIKit/UIHTMLDisplayServerContext.js +0 -6
- package/Root/Frameworks/UIKit/UIHTMLDisplayServerSVGContext.js +6 -77
- package/Root/Frameworks/UIKit/UIHTMLTextField.js +9 -3
- package/Root/Frameworks/UIKit/UIHTMLTextTypesetter.js +2 -29
- package/Root/Frameworks/UIKit/UIHTMLWindowServer.js +6 -79
- package/Root/Frameworks/UIKit/UIImageLayer.js +14 -7
- package/Root/Frameworks/UIKit/UILabel.js +74 -1
- package/Root/Frameworks/UIKit/UIMouseTrackingArea.js +55 -0
- package/Root/Frameworks/UIKit/UIState.js +23 -0
- package/Root/Frameworks/UIKit/UITextEditor.js +277 -76
- package/Root/Frameworks/UIKit/UITextEditorDelegate.js +3 -1
- package/Root/Frameworks/UIKit/UITextLayer.js +1 -1
- package/Root/Frameworks/UIKit/UIView.js +118 -46
- package/Root/Frameworks/UIKit/UIViewController.js +6 -0
- package/Root/Frameworks/UIKit/UIWindow.js +89 -0
- package/Root/Frameworks/UIKit/UIWindowServer.js +20 -79
- package/Root/Frameworks/UIKitTesting/Info.yaml +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.DOM",
|
|
4
|
-
"JSBundleVersion": "2022.
|
|
4
|
+
"JSBundleVersion": "2022.26.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "DOM+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.DOM'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.DOM",
|
|
6
|
-
"JSBundleVersion": "2022.
|
|
6
|
+
"JSBundleVersion": "2022.26.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.DOM'] = {
|
|
|
11
11
|
"node": "DOM+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [],
|
|
17
17
|
"ResourceLookup": {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.FontKit",
|
|
4
|
-
"JSBundleVersion": "2022.
|
|
4
|
+
"JSBundleVersion": "2022.26.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
8
8
|
"html": "FontKit+HTML.js"
|
|
9
9
|
},
|
|
10
10
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
11
|
-
"GitRevision": "
|
|
11
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
12
12
|
}
|
|
@@ -3,14 +3,14 @@ JSBundle.bundles['io.breakside.JSKit.FontKit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.FontKit",
|
|
6
|
-
"JSBundleVersion": "2022.
|
|
6
|
+
"JSBundleVersion": "2022.26.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
10
10
|
"html": "FontKit+HTML.js"
|
|
11
11
|
},
|
|
12
12
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
13
|
-
"GitRevision": "
|
|
13
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
14
14
|
},
|
|
15
15
|
"Resources": [],
|
|
16
16
|
"ResourceLookup": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.Foundation",
|
|
4
|
-
"JSBundleVersion": "2022.
|
|
4
|
+
"JSBundleVersion": "2022.26.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "Foundation+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
13
13
|
}
|
|
@@ -157,8 +157,8 @@ JSClass("JSNodeFileManager", JSFileManager, {
|
|
|
157
157
|
if (!error){
|
|
158
158
|
attrs = {
|
|
159
159
|
itemType: JSFileManager.ItemType.fromStat(stats),
|
|
160
|
-
created: Math.floor(stats.ctimeMs),
|
|
161
|
-
|
|
160
|
+
created: Math.floor(stats.ctimeMs / 1000.0),
|
|
161
|
+
updated: Math.floor(stats.mtimeMs / 1000.0),
|
|
162
162
|
size: stats.size
|
|
163
163
|
};
|
|
164
164
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
// #import "JSObject.js"
|
|
2
2
|
// #import "Promise+JS.js"
|
|
3
3
|
// #import "JSCRC32.js"
|
|
4
|
+
// #import "JSDate.js"
|
|
5
|
+
// #import "JSCalendar.js"
|
|
6
|
+
// #import "Deflate.js"
|
|
4
7
|
"use strict";
|
|
5
8
|
|
|
6
9
|
JSClass("JSZip", JSObject, {
|
|
@@ -14,61 +17,89 @@ JSClass("JSZip", JSObject, {
|
|
|
14
17
|
offset: 0,
|
|
15
18
|
|
|
16
19
|
addFile: function(file, completion, target){
|
|
20
|
+
return this.addFileInDirectory(file, "", {}, completion, target);
|
|
21
|
+
},
|
|
22
|
+
|
|
23
|
+
addFileInDirectory: function(file, directory, attributes, completion, target){
|
|
17
24
|
if (!completion){
|
|
18
25
|
completion = Promise.completion(Promise.resolveNull);
|
|
19
26
|
}
|
|
27
|
+
if (directory.startsWith("/")){
|
|
28
|
+
directory = directory.substr(1);
|
|
29
|
+
}
|
|
30
|
+
if (directory.length > 1 && !directory.endsWith("/")){
|
|
31
|
+
directory = directory + "/";
|
|
32
|
+
}
|
|
20
33
|
file.readData(function(data){
|
|
21
34
|
if (data === null){
|
|
22
35
|
completion.call(target, new Error("Failed to read file data"));
|
|
23
36
|
return;
|
|
24
37
|
}
|
|
25
|
-
|
|
38
|
+
var error = null;
|
|
39
|
+
try{
|
|
40
|
+
this.addDataForFilename(data, directory + file.name, attributes);
|
|
41
|
+
}catch (e){
|
|
42
|
+
error = e;
|
|
43
|
+
}
|
|
44
|
+
completion.call(target, error);
|
|
26
45
|
}, this);
|
|
27
46
|
return completion.promise;
|
|
28
47
|
},
|
|
29
48
|
|
|
30
|
-
addDataForFilename: function(data, name,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
dataView.setUint16(26, encodedName.length, true);
|
|
50
|
-
dataView.setUint16(28, 0, true);
|
|
51
|
-
encodedName.copyTo(header, 30);
|
|
52
|
-
this.directory.push({
|
|
53
|
-
name: name,
|
|
54
|
-
offset: this.offset,
|
|
55
|
-
header: header
|
|
56
|
-
});
|
|
57
|
-
this.addChunk(header);
|
|
58
|
-
this.addChunk(data);
|
|
59
|
-
}catch (e){
|
|
60
|
-
error = e;
|
|
49
|
+
addDataForFilename: function(data, name, attributes, deflate){
|
|
50
|
+
var encodedName = name.utf8();
|
|
51
|
+
var header = JSData.initWithLength(30 + encodedName.length);
|
|
52
|
+
var dataView = header.dataView();
|
|
53
|
+
var crc = JSCRC32(data);
|
|
54
|
+
var dateComponents = JSCalendar.gregorian.componentsFromDate(JSCalendar.Unit.day | JSCalendar.Unit.month | JSCalendar.Unit.year | JSCalendar.Unit.hour | JSCalendar.Unit.minute | JSCalendar.Unit.second, attributes.updated !== undefined ? JSDate.initWithTimeIntervalSince1970(attributes.updated) : JSDate.now, JSTimeZone.local || JSTimeZone.utc);
|
|
55
|
+
var dosDate = ((dateComponents.year - 1980) << 9) | ((dateComponents.month) << 5) | (dateComponents.day);
|
|
56
|
+
var dosTime = ((dateComponents.hour) << 11) | ((dateComponents.minute) << 5) | (Math.floor(dateComponents.second / 2));
|
|
57
|
+
var storedData = data;
|
|
58
|
+
var method = 0;
|
|
59
|
+
if (deflate){
|
|
60
|
+
var stream = DeflateStream();
|
|
61
|
+
stream.input = data;
|
|
62
|
+
stream.output = JSData.initWithLength(data.length);
|
|
63
|
+
stream.deflate(true);
|
|
64
|
+
if (stream.state === DeflateStream.State.done){
|
|
65
|
+
storedData = stream.output.subdataInRange(JSRange(0, stream.outputOffset));
|
|
66
|
+
method = 8;
|
|
67
|
+
}
|
|
61
68
|
}
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
// Local File Header (APPNOTE.txt 4.3.7)
|
|
70
|
+
// Everything is little-endian
|
|
71
|
+
dataView.setUint32(0, 0x04034b50, true); // signtature
|
|
72
|
+
dataView.setUint16(4, 0x0014, true); // version needed to extract (2.0)
|
|
73
|
+
dataView.setUint16(6, 0, true); // general purpose flags
|
|
74
|
+
dataView.setUint16(8, method, true); // compression method (0=none, 8=deflate)
|
|
75
|
+
dataView.setUint16(10, dosTime, true); // last modified time (MS-DOS)
|
|
76
|
+
dataView.setUint16(12, dosDate, true); // last modified date (MS-DOS)
|
|
77
|
+
dataView.setUint32(14, crc, true); // crc-32 (magic number 0xdebb20e3, preconditioned to 0xffffffff, post-conditioned by one's compliment)
|
|
78
|
+
dataView.setUint32(18, storedData.length, true); // compressed size
|
|
79
|
+
dataView.setUint32(22, data.length, true); // uncompressed size
|
|
80
|
+
dataView.setUint16(26, encodedName.length, true); // name length
|
|
81
|
+
dataView.setUint16(28, 0, true); // extra field length
|
|
82
|
+
encodedName.copyTo(header, 30); // name (NOT null-terminated)
|
|
83
|
+
this.directory.push({
|
|
84
|
+
name: name,
|
|
85
|
+
offset: this.offset,
|
|
86
|
+
header: header
|
|
87
|
+
});
|
|
88
|
+
this.chunks.push(header);
|
|
89
|
+
this.chunks.push(storedData);
|
|
90
|
+
this.offset += header.length + storedData.length;
|
|
91
|
+
this._data = null;
|
|
64
92
|
},
|
|
65
93
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
94
|
+
directory: null,
|
|
95
|
+
|
|
96
|
+
chunks: null,
|
|
97
|
+
|
|
98
|
+
data: JSReadOnlyProperty("_data", null),
|
|
99
|
+
|
|
100
|
+
getData: function(){
|
|
101
|
+
if (this._data === null){
|
|
102
|
+
var chunks = JSCopy(this.chunks);
|
|
72
103
|
var i, l;
|
|
73
104
|
var centralDirectoryOffset = this.offset;
|
|
74
105
|
var centralDirectorySize = 0;
|
|
@@ -77,49 +108,39 @@ JSClass("JSZip", JSObject, {
|
|
|
77
108
|
var dataView;
|
|
78
109
|
var file;
|
|
79
110
|
for (i = 0, l = this.directory.length; i < l; ++i){
|
|
111
|
+
// Central Directory File Header (APPNOTE.txt 4.3.12)
|
|
112
|
+
// Everything is little-endian
|
|
80
113
|
file = this.directory[i];
|
|
81
114
|
header = JSData.initWithLength(46 + (file.header.length - 30));
|
|
82
115
|
dataView = header.dataView();
|
|
83
|
-
dataView.setUint32(0, 0x02014b50, true);
|
|
84
|
-
dataView.setUint16(4,
|
|
85
|
-
file.header.subdataInRange(JSRange(4, 26)).copyTo(header, 6);
|
|
86
|
-
dataView.setUint16(32, 0, true);
|
|
87
|
-
dataView.setUint16(34, 0, true);
|
|
88
|
-
dataView.setUint16(36, 0, true);
|
|
89
|
-
dataView.setUint32(38, 0, true);
|
|
90
|
-
dataView.setUint32(42, file.offset, true);
|
|
91
|
-
file.header.subdataInRange(JSRange(30, file.header.length - 30)).copyTo(header, 46);
|
|
116
|
+
dataView.setUint32(0, 0x02014b50, true); // signature
|
|
117
|
+
dataView.setUint16(4, 0x0314, true); // version made by (UNIX=3, 2.0)
|
|
118
|
+
file.header.subdataInRange(JSRange(4, 26)).copyTo(header, 6); // copy from local header
|
|
119
|
+
dataView.setUint16(32, 0, true); // commenet length
|
|
120
|
+
dataView.setUint16(34, 0, true); // disk number start
|
|
121
|
+
dataView.setUint16(36, 0, true); // internal file attributes
|
|
122
|
+
dataView.setUint32(38, 0, true); // external file attributes
|
|
123
|
+
dataView.setUint32(42, file.offset, true); // offset of local header relative to first disk
|
|
124
|
+
file.header.subdataInRange(JSRange(30, file.header.length - 30)).copyTo(header, 46); // name (ALWAYS forward slashes for directories)
|
|
92
125
|
centralDirectorySize += header.length;
|
|
93
|
-
|
|
126
|
+
chunks.push(header);
|
|
94
127
|
}
|
|
128
|
+
// End of Central Directory Record (APPNOTE.txt 4.3.16)
|
|
129
|
+
// everything is little-endian
|
|
95
130
|
var end = JSData.initWithLength(22);
|
|
96
131
|
dataView = end.dataView();
|
|
97
|
-
dataView.setUint32(0, 0x06054b50, true);
|
|
98
|
-
dataView.setUint16(4, 0, true);
|
|
99
|
-
dataView.setUint16(6, 0, true);
|
|
100
|
-
dataView.setUint16(8, this.directory.length, true);
|
|
101
|
-
dataView.setUint16(10, this.directory.length, true);
|
|
102
|
-
dataView.setUint32(12, centralDirectorySize, true);
|
|
103
|
-
dataView.setUint32(16, centralDirectoryOffset, true);
|
|
104
|
-
dataView.setUint16(20, 0, true);
|
|
105
|
-
|
|
106
|
-
this._data = JSData.initWithChunks(
|
|
107
|
-
}catch (e){
|
|
108
|
-
error = e;
|
|
132
|
+
dataView.setUint32(0, 0x06054b50, true); // signature
|
|
133
|
+
dataView.setUint16(4, 0, true); // number of this disk
|
|
134
|
+
dataView.setUint16(6, 0, true); // number of the disk with the start of central directory
|
|
135
|
+
dataView.setUint16(8, this.directory.length, true); // number of central directory items on this disk
|
|
136
|
+
dataView.setUint16(10, this.directory.length, true); // number of central directory items total
|
|
137
|
+
dataView.setUint32(12, centralDirectorySize, true); // size of central directory
|
|
138
|
+
dataView.setUint32(16, centralDirectoryOffset, true); // offset to central directory with respect to starting disk
|
|
139
|
+
dataView.setUint16(20, 0, true); // zip file comemnt length
|
|
140
|
+
chunks.push(end);
|
|
141
|
+
this._data = JSData.initWithChunks(chunks);
|
|
109
142
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
addChunk: function(chunk){
|
|
115
|
-
this.chunks.push(chunk);
|
|
116
|
-
this.offset += chunk.length;
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
directory: null,
|
|
120
|
-
|
|
121
|
-
chunks: null,
|
|
122
|
-
|
|
123
|
-
data: JSReadOnlyProperty("_data", null),
|
|
143
|
+
return this._data;
|
|
144
|
+
}
|
|
124
145
|
|
|
125
146
|
});
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.Foundation'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.Foundation",
|
|
6
|
-
"JSBundleVersion": "2022.
|
|
6
|
+
"JSBundleVersion": "2022.26.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.Foundation'] = {
|
|
|
11
11
|
"node": "Foundation+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [
|
|
17
17
|
{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "framework",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.JSKit.SecurityKit",
|
|
4
|
-
"JSBundleVersion": "2022.
|
|
4
|
+
"JSBundleVersion": "2022.26.0",
|
|
5
5
|
"JSDevelopmentLanguage": "en",
|
|
6
6
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
7
7
|
"JSBundleEnvironments": {
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"node": "SecurityKit+Node.js"
|
|
10
10
|
},
|
|
11
11
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
12
|
-
"GitRevision": "
|
|
12
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
13
13
|
}
|
|
@@ -3,7 +3,7 @@ JSBundle.bundles['io.breakside.JSKit.SecurityKit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "framework",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.JSKit.SecurityKit",
|
|
6
|
-
"JSBundleVersion": "2022.
|
|
6
|
+
"JSBundleVersion": "2022.26.0",
|
|
7
7
|
"JSDevelopmentLanguage": "en",
|
|
8
8
|
"JSCopyright": "Copyright © 2020 Breakside Inc.",
|
|
9
9
|
"JSBundleEnvironments": {
|
|
@@ -11,7 +11,7 @@ JSBundle.bundles['io.breakside.JSKit.SecurityKit'] = {
|
|
|
11
11
|
"node": "SecurityKit+Node.js"
|
|
12
12
|
},
|
|
13
13
|
"JSLicenseNotice": "Licensed under the Breakside Public License, Version 1.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nIf a copy of the License was not distributed with this file, you may\nobtain a copy at\n\n http://breakside.io/licenses/LICENSE-1.0.txt\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n",
|
|
14
|
-
"GitRevision": "
|
|
14
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
15
15
|
},
|
|
16
16
|
"Resources": [],
|
|
17
17
|
"ResourceLookup": {
|
package/Info.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"JSBundleType": "node",
|
|
3
3
|
"JSBundleIdentifier": "io.breakside.jskit",
|
|
4
|
-
"JSBundleVersion": "2022.
|
|
4
|
+
"JSBundleVersion": "2022.26.0",
|
|
5
5
|
"JSExecutableName": "jskit",
|
|
6
6
|
"NPMOrganization": "breakside",
|
|
7
7
|
"JSResources": [
|
|
8
8
|
"Tests/HTMLTestRunner.js",
|
|
9
9
|
"Tests/NodeTestRunner.js"
|
|
10
10
|
],
|
|
11
|
-
"GitRevision": "
|
|
11
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
12
12
|
}
|
|
@@ -3,14 +3,14 @@ JSBundle.bundles['io.breakside.jskit'] = {
|
|
|
3
3
|
"Info": {
|
|
4
4
|
"JSBundleType": "node",
|
|
5
5
|
"JSBundleIdentifier": "io.breakside.jskit",
|
|
6
|
-
"JSBundleVersion": "2022.
|
|
6
|
+
"JSBundleVersion": "2022.26.0",
|
|
7
7
|
"JSExecutableName": "jskit",
|
|
8
8
|
"NPMOrganization": "breakside",
|
|
9
9
|
"JSResources": [
|
|
10
10
|
"Tests/HTMLTestRunner.js",
|
|
11
11
|
"Tests/NodeTestRunner.js"
|
|
12
12
|
],
|
|
13
|
-
"GitRevision": "
|
|
13
|
+
"GitRevision": "3b75d216a80c0454a393c8c3ff93181ba854a6d5"
|
|
14
14
|
},
|
|
15
15
|
"Resources": [
|
|
16
16
|
{
|
|
@@ -157,8 +157,8 @@ JSClass("JSNodeFileManager", JSFileManager, {
|
|
|
157
157
|
if (!error){
|
|
158
158
|
attrs = {
|
|
159
159
|
itemType: JSFileManager.ItemType.fromStat(stats),
|
|
160
|
-
created: Math.floor(stats.ctimeMs),
|
|
161
|
-
|
|
160
|
+
created: Math.floor(stats.ctimeMs / 1000.0),
|
|
161
|
+
updated: Math.floor(stats.mtimeMs / 1000.0),
|
|
162
162
|
size: stats.size
|
|
163
163
|
};
|
|
164
164
|
}
|