@breakside/jskit 2022.25.1 → 2022.28.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.
Files changed (62) hide show
  1. package/Frameworks/DOM.jsframework/Info.json +2 -2
  2. package/Frameworks/DOM.jsframework/io.breakside.JSKit.DOM-bundle.js +2 -2
  3. package/Frameworks/FontKit.jsframework/Info.json +2 -2
  4. package/Frameworks/FontKit.jsframework/io.breakside.JSKit.FontKit-bundle.js +2 -2
  5. package/Frameworks/Foundation.jsframework/Info.json +2 -2
  6. package/Frameworks/Foundation.jsframework/JS/JSFileManager+HTML.js +29 -19
  7. package/Frameworks/Foundation.jsframework/JS/JSUserDefaults.js +2 -2
  8. package/Frameworks/Foundation.jsframework/io.breakside.JSKit.Foundation-bundle.js +2 -2
  9. package/Frameworks/SecurityKit.jsframework/Info.json +2 -2
  10. package/Frameworks/SecurityKit.jsframework/io.breakside.JSKit.SecurityKit-bundle.js +2 -2
  11. package/Info.json +2 -2
  12. package/Node/io.breakside.jskit-bundle.js +2 -2
  13. package/Root/Frameworks/APIKit/Info.yaml +1 -1
  14. package/Root/Frameworks/APIKitTesting/Info.yaml +1 -1
  15. package/Root/Frameworks/AuthKit/Info.yaml +1 -1
  16. package/Root/Frameworks/AuthKit/OAService.js +8 -0
  17. package/Root/Frameworks/AuthKit/Services.yaml +2 -0
  18. package/Root/Frameworks/CSSOM/Info.yaml +1 -1
  19. package/Root/Frameworks/ChartKit/Info.yaml +1 -1
  20. package/Root/Frameworks/ConferenceKit/Info.yaml +1 -1
  21. package/Root/Frameworks/DBKit/Info.yaml +1 -1
  22. package/Root/Frameworks/DOM/Info.yaml +1 -1
  23. package/Root/Frameworks/Dispatch/Info.yaml +1 -1
  24. package/Root/Frameworks/FontKit/Info.yaml +1 -1
  25. package/Root/Frameworks/Foundation/Info.yaml +1 -1
  26. package/Root/Frameworks/Foundation/JSFileManager+HTML.js +29 -19
  27. package/Root/Frameworks/Foundation/JSUserDefaults.js +2 -2
  28. package/Root/Frameworks/ImageKit/Info.yaml +1 -1
  29. package/Root/Frameworks/MediaKit/Info.yaml +1 -1
  30. package/Root/Frameworks/MediaKitUI/Info.yaml +1 -1
  31. package/Root/Frameworks/NotificationKit/Info.yaml +1 -1
  32. package/Root/Frameworks/PDFKit/Info.yaml +1 -1
  33. package/Root/Frameworks/QRKit/Info.yaml +1 -1
  34. package/Root/Frameworks/SearchKit/Info.yaml +1 -1
  35. package/Root/Frameworks/SecurityKit/Info.yaml +1 -1
  36. package/Root/Frameworks/ServerKit/Info.yaml +1 -1
  37. package/Root/Frameworks/ServerKitTesting/Info.yaml +1 -1
  38. package/Root/Frameworks/TestKit/Info.yaml +1 -1
  39. package/Root/Frameworks/UIKit/Info.yaml +1 -1
  40. package/Root/Frameworks/UIKit/UICursor.js +19 -4
  41. package/Root/Frameworks/UIKit/UIDisplayServer.js +51 -10
  42. package/Root/Frameworks/UIKit/UIHTMLDisplayServerCanvasContext.js +2 -48
  43. package/Root/Frameworks/UIKit/UIHTMLDisplayServerContext.js +0 -6
  44. package/Root/Frameworks/UIKit/UIHTMLDisplayServerSVGContext.js +6 -77
  45. package/Root/Frameworks/UIKit/UIHTMLTextField.js +9 -3
  46. package/Root/Frameworks/UIKit/UIHTMLTextTypesetter.js +2 -29
  47. package/Root/Frameworks/UIKit/UIHTMLWindowServer.js +6 -79
  48. package/Root/Frameworks/UIKit/UIKit.js +1 -0
  49. package/Root/Frameworks/UIKit/UILabel.js +72 -1
  50. package/Root/Frameworks/UIKit/UILayer.js +3 -0
  51. package/Root/Frameworks/UIKit/UIMouseTrackingArea.js +55 -0
  52. package/Root/Frameworks/UIKit/UINavigationBar.js +45 -22
  53. package/Root/Frameworks/UIKit/UIState.js +18 -0
  54. package/Root/Frameworks/UIKit/UITextEditor.js +277 -76
  55. package/Root/Frameworks/UIKit/UITextEditorDelegate.js +3 -1
  56. package/Root/Frameworks/UIKit/UITextLayer.js +1 -1
  57. package/Root/Frameworks/UIKit/UIView.js +129 -46
  58. package/Root/Frameworks/UIKit/UIViewController.js +6 -0
  59. package/Root/Frameworks/UIKit/UIWindow.js +89 -0
  60. package/Root/Frameworks/UIKit/UIWindowServer.js +20 -79
  61. package/Root/Frameworks/UIKitTesting/Info.yaml +1 -1
  62. 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.25.1",
4
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
12
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
6
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
14
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
4
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
11
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
6
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
13
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
4
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
12
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
13
13
  }
@@ -551,16 +551,22 @@ JSClass("JSHTMLFileManager", JSFileManager, {
551
551
 
552
552
  _copyDirectoryInTransactionAtURL: function(transaction, url, toURL, toParent, metadata){
553
553
  this._copyMetadataInTransactionAtURL(transaction, url, toURL, toParent, metadata);
554
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
555
- var childRequest = index.openCursor({parent: url.path});
556
- var children = [];
557
- childRequest.onsuccess = function JSFileManager_copyDirectory_onsucess(e){
558
- var cursor = e.target.result;
559
- if (cursor){
560
- var child = cursor.value;
561
- var childURL = url.appendingPathComponent(child.name);
562
- var childToURL = toURL.appendingPathComponent(child.name);
563
- this._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
554
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
555
+ var lookup = url.path;
556
+ var request = index.getAll(lookup);
557
+ var manager = this;
558
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
559
+ var results = e.target.result;
560
+ if (results){
561
+ var child;
562
+ var childURL;
563
+ var childToURL;
564
+ for (var i = 0, l = results.length; i < l; ++i){
565
+ child = results[i];
566
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
567
+ childToURL = toURL.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
568
+ manager._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
569
+ }
564
570
  }
565
571
  };
566
572
  },
@@ -639,16 +645,20 @@ JSClass("JSHTMLFileManager", JSFileManager, {
639
645
 
640
646
  _removeDirectoryInTransactionAtURL: function(transaction, url, parent, metadata){
641
647
  this._removeMetadataInTransactionAtURL(transaction, url, parent, metadata);
642
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
643
- var childRequest = index.openCursor([url.path]);
644
- var children = [];
648
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
649
+ var lookup = url.path;
650
+ var request = index.getAll(lookup);
645
651
  var manager = this;
646
- childRequest.onsuccess = function JSFileManager_removeDirectory_onsucess(e){
647
- var cursor = e.target.result;
648
- if (cursor){
649
- var child = cursor.value;
650
- var childURL = url.appendingPathComponent(child.name);
651
- manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
652
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
653
+ var results = e.target.result;
654
+ if (results){
655
+ var child;
656
+ var childURL;
657
+ for (var i = 0, l = results.length; i < l; ++i){
658
+ child = results[i];
659
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
660
+ manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
661
+ }
652
662
  }
653
663
  };
654
664
  },
@@ -120,7 +120,9 @@ JSClass("JSUserDefaults", JSObject, {
120
120
  if (this._values === null){
121
121
  throw new Error("JSUserDefaults is closed, cannot set value. Be sure to call open() first.");
122
122
  }
123
+ this.willChangeValueForKey(key);
123
124
  this._values[key] = value;
125
+ this.didChangeValueForKey(key);
124
126
  this._persistAfterDelay();
125
127
  this._definePropertyForKey(key);
126
128
  },
@@ -149,9 +151,7 @@ JSClass("JSUserDefaults", JSObject, {
149
151
  return this.valueForKey(key);
150
152
  },
151
153
  set: function JSUserDefaults_setValue(value){
152
- this.willChangeValueForKey(key);
153
154
  this.setValueForKey(value, key);
154
- this.didChangeValueForKey(key);
155
155
  }
156
156
  });
157
157
  }
@@ -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.25.1",
6
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
14
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
4
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
12
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
6
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
14
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
4
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
11
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
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.25.1",
6
+ "JSBundleVersion": "2022.28.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": "2e97a8a0dcc3e1907a4ba7e8e31cd544e87cb0a4"
13
+ "GitRevision": "c07c0e14f0ec075ac6d44fe7fa1e9e8dbf26e0cd"
14
14
  },
15
15
  "Resources": [
16
16
  {
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.APIKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSIncludeDirectories:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.APIKitTesting
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.AuthKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -135,6 +135,14 @@ Object.defineProperties(OAService, {
135
135
  return service;
136
136
  }
137
137
  },
138
+ facebook: {
139
+ configurable: true,
140
+ get: function(){
141
+ var service = OAService.initWithIdentifier('facebook');
142
+ Object.defineProperty(this, 'facebook', {value: service});
143
+ return service;
144
+ }
145
+ },
138
146
  authPrivacy: {
139
147
  configurable: true,
140
148
  get: function(){
@@ -4,5 +4,7 @@ microsoft:
4
4
  endpoint: https://login.microsoftonline.com/common/v2.0/
5
5
  apple:
6
6
  endpoint: https://appleid.apple.com/
7
+ facebook:
8
+ endpoint: https://facebook.com/
7
9
  authPrivacy:
8
10
  endpoint: https://authprivacy.com/
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.CSSOM
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ChartKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2021 Breakside Inc.
6
6
  # JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ConferenceKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.DBKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.DOM
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.Dispatch
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSCopyright: Copyright © 2020 Breakside Inc.
5
5
  JSBundleEnvironments:
6
6
  html: Dispatch+HTML.js
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.FontKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.Foundation
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -551,16 +551,22 @@ JSClass("JSHTMLFileManager", JSFileManager, {
551
551
 
552
552
  _copyDirectoryInTransactionAtURL: function(transaction, url, toURL, toParent, metadata){
553
553
  this._copyMetadataInTransactionAtURL(transaction, url, toURL, toParent, metadata);
554
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
555
- var childRequest = index.openCursor({parent: url.path});
556
- var children = [];
557
- childRequest.onsuccess = function JSFileManager_copyDirectory_onsucess(e){
558
- var cursor = e.target.result;
559
- if (cursor){
560
- var child = cursor.value;
561
- var childURL = url.appendingPathComponent(child.name);
562
- var childToURL = toURL.appendingPathComponent(child.name);
563
- this._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
554
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
555
+ var lookup = url.path;
556
+ var request = index.getAll(lookup);
557
+ var manager = this;
558
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
559
+ var results = e.target.result;
560
+ if (results){
561
+ var child;
562
+ var childURL;
563
+ var childToURL;
564
+ for (var i = 0, l = results.length; i < l; ++i){
565
+ child = results[i];
566
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
567
+ childToURL = toURL.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
568
+ manager._copyItemInTransactionAtURL(transaction, childURL, childToURL, toURL, child);
569
+ }
564
570
  }
565
571
  };
566
572
  },
@@ -639,16 +645,20 @@ JSClass("JSHTMLFileManager", JSFileManager, {
639
645
 
640
646
  _removeDirectoryInTransactionAtURL: function(transaction, url, parent, metadata){
641
647
  this._removeMetadataInTransactionAtURL(transaction, url, parent, metadata);
642
- var index = transaction.metadata.index(JSFileManager.Indexes.metadataPath);
643
- var childRequest = index.openCursor([url.path]);
644
- var children = [];
648
+ var index = transaction.metadata.index(JSFileManager.Indexes.metadataParent);
649
+ var lookup = url.path;
650
+ var request = index.getAll(lookup);
645
651
  var manager = this;
646
- childRequest.onsuccess = function JSFileManager_removeDirectory_onsucess(e){
647
- var cursor = e.target.result;
648
- if (cursor){
649
- var child = cursor.value;
650
- var childURL = url.appendingPathComponent(child.name);
651
- manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
652
+ request.onsuccess = function JSFileManager_removeDirectory_onsuccess(e){
653
+ var results = e.target.result;
654
+ if (results){
655
+ var child;
656
+ var childURL;
657
+ for (var i = 0, l = results.length; i < l; ++i){
658
+ child = results[i];
659
+ childURL = url.appendingPathComponent(child.name, child.itemType == JSFileManager.ItemType.directory);
660
+ manager._removeItemInTransactionAtURL(transaction, childURL, url, child);
661
+ }
652
662
  }
653
663
  };
654
664
  },
@@ -120,7 +120,9 @@ JSClass("JSUserDefaults", JSObject, {
120
120
  if (this._values === null){
121
121
  throw new Error("JSUserDefaults is closed, cannot set value. Be sure to call open() first.");
122
122
  }
123
+ this.willChangeValueForKey(key);
123
124
  this._values[key] = value;
125
+ this.didChangeValueForKey(key);
124
126
  this._persistAfterDelay();
125
127
  this._definePropertyForKey(key);
126
128
  },
@@ -149,9 +151,7 @@ JSClass("JSUserDefaults", JSObject, {
149
151
  return this.valueForKey(key);
150
152
  },
151
153
  set: function JSUserDefaults_setValue(value){
152
- this.willChangeValueForKey(key);
153
154
  this.setValueForKey(value, key);
154
- this.didChangeValueForKey(key);
155
155
  }
156
156
  });
157
157
  }
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ImageKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.MediaKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.MediaKitUI
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.NotificationKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2021 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.PDFKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.QRKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.SearchKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.SecurityKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ServerKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.ServerKitTesting
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.TestKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSLicenseNotice: |
@@ -1,6 +1,6 @@
1
1
  JSBundleType: framework
2
2
  JSBundleIdentifier: io.breakside.JSKit.UIKit
3
- JSBundleVersion: 2022.25.1
3
+ JSBundleVersion: 2022.28.0
4
4
  JSDevelopmentLanguage: en
5
5
  JSCopyright: Copyright © 2020 Breakside Inc.
6
6
  JSBundleEnvironments:
@@ -85,7 +85,16 @@ JSClass("UICursor", JSObject, {
85
85
 
86
86
  pop: function(){
87
87
  UICursor.pop();
88
+ },
89
+
90
+ set: function(){
91
+ UICursor.set(this);
92
+ },
93
+
94
+ unset: function(){
95
+ UICursor.set(UICursor.systemDefault);
88
96
  }
97
+
89
98
  });
90
99
 
91
100
  UICursor.hide = function(){
@@ -107,17 +116,22 @@ UICursor.unhide = function(){
107
116
 
108
117
  UICursor.push = function(cursor){
109
118
  UICursor._stack.push(cursor);
110
- UICursor.show();
119
+ UICursor.update();
111
120
  };
112
121
 
113
122
  UICursor.pop = function(){
114
123
  if (UICursor._stack.length > 1){
115
124
  UICursor._stack.pop();
116
- UICursor.show();
125
+ UICursor.update();
117
126
  }
118
127
  };
119
128
 
120
- UICursor.show = function(){
129
+ UICursor.set = function(cursor){
130
+ UICursor._stack[0] = cursor;
131
+ UICursor.update();
132
+ };
133
+
134
+ UICursor.update = function(){
121
135
  if (this._hideCount === 0){
122
136
  UIApplication.shared.windowServer.setCursor(UICursor.currentCursor);
123
137
  }
@@ -160,4 +174,5 @@ UICursor.dragCopy = UICursor.initWithSystemIdentifier(UICursor.SystemIdentifier.
160
174
  UICursor.crosshair = UICursor.initWithSystemIdentifier(UICursor.SystemIdentifier.crosshair);
161
175
 
162
176
  UICursor._hideCount = 0;
163
- UICursor._stack = [UICursor.arrow];
177
+ UICursor.systemDefault = UICursor.arrow;
178
+ UICursor._stack = [UICursor.systemDefault];