├── .gitignore ├── CNAME ├── LICENSE ├── Podfile ├── Podfile.lock ├── README.md ├── app-shared ├── owinjs-debug │ ├── index.js │ └── views │ │ ├── debug.js.html │ │ └── layout.js.html └── owinjs-splash │ ├── images │ ├── StartupSplash.png │ ├── domaba.png │ ├── logo.png │ └── nodeAppKit.png │ └── views │ └── StartupSplash.html ├── app ├── default.html ├── index.js └── package.json ├── index.html ├── javascripts └── scale.fix.js ├── lib ├── cancellation.js ├── nodeappkit.js ├── owinjs-browser.js └── owinserver.js ├── nodeAppKit.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcshareddata │ └── xcschemes │ └── nodeAppKit.xcscheme ├── nodeAppKit.xcworkspace └── contents.xcworkspacedata ├── nodeAppKit ├── NAKAppDelegate.h ├── NAKAppDelegate.m ├── NAKJSContextFactory.h ├── NAKJSContextFactory.m ├── NAKOWIN.h ├── NAKOWIN.m ├── NAKURLFileDecode.h ├── NAKURLFileDecode.m ├── NAKURLProtocolCustom.h ├── NAKURLProtocolCustom.m ├── NAKURLProtocolLocalFile.h ├── NAKURLProtocolLocalFile.m ├── NAKWebView.h ├── NAKWebView.m ├── NAKWebViewDebug.h ├── NAKWebViewDebug.m ├── NSObject+NodeAppKit.h ├── NSObject+NodeAppKit.m ├── NodeAppKit.h ├── NodeAppKit.m ├── main.m ├── nodeAppKit-Info.plist └── nodeAppKit-Prefix.pch ├── nodeAppKitLogo.icns ├── params.json └── stylesheets ├── pygment_trac.css └── styles.css /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # CocoaPods 23 | Pods 24 | 25 | # Node 26 | **/node_modules/* 27 | **/components/* 28 | /app-shared/OwinJS/* -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | nodeappkit.owinjs.org 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 Guy Barnard 2 | 3 | Mozilla Public License Version 2.0 4 | ================================== 5 | 6 | 1. Definitions 7 | -------------- 8 | 9 | 1.1. "Contributor" 10 | means each individual or legal entity that creates, contributes to 11 | the creation of, or owns Covered Software. 12 | 13 | 1.2. "Contributor Version" 14 | means the combination of the Contributions of others (if any) used 15 | by a Contributor and that particular Contributor's Contribution. 16 | 17 | 1.3. "Contribution" 18 | means Covered Software of a particular Contributor. 19 | 20 | 1.4. "Covered Software" 21 | means Source Code Form to which the initial Contributor has attached 22 | the notice in Exhibit A, the Executable Form of such Source Code 23 | Form, and Modifications of such Source Code Form, in each case 24 | including portions thereof. 25 | 26 | 1.5. "Incompatible With Secondary Licenses" 27 | means 28 | 29 | (a) that the initial Contributor has attached the notice described 30 | in Exhibit B to the Covered Software; or 31 | 32 | (b) that the Covered Software was made available under the terms of 33 | version 1.1 or earlier of the License, but not also under the 34 | terms of a Secondary License. 35 | 36 | 1.6. "Executable Form" 37 | means any form of the work other than Source Code Form. 38 | 39 | 1.7. "Larger Work" 40 | means a work that combines Covered Software with other material, in 41 | a separate file or files, that is not Covered Software. 42 | 43 | 1.8. "License" 44 | means this document. 45 | 46 | 1.9. "Licensable" 47 | means having the right to grant, to the maximum extent possible, 48 | whether at the time of the initial grant or subsequently, any and 49 | all of the rights conveyed by this License. 50 | 51 | 1.10. "Modifications" 52 | means any of the following: 53 | 54 | (a) any file in Source Code Form that results from an addition to, 55 | deletion from, or modification of the contents of Covered 56 | Software; or 57 | 58 | (b) any new file in Source Code Form that contains any Covered 59 | Software. 60 | 61 | 1.11. "Patent Claims" of a Contributor 62 | means any patent claim(s), including without limitation, method, 63 | process, and apparatus claims, in any patent Licensable by such 64 | Contributor that would be infringed, but for the grant of the 65 | License, by the making, using, selling, offering for sale, having 66 | made, import, or transfer of either its Contributions or its 67 | Contributor Version. 68 | 69 | 1.12. "Secondary License" 70 | means either the GNU General Public License, Version 2.0, the GNU 71 | Lesser General Public License, Version 2.1, the GNU Affero General 72 | Public License, Version 3.0, or any later versions of those 73 | licenses. 74 | 75 | 1.13. "Source Code Form" 76 | means the form of the work preferred for making modifications. 77 | 78 | 1.14. "You" (or "Your") 79 | means an individual or a legal entity exercising rights under this 80 | License. For legal entities, "You" includes any entity that 81 | controls, is controlled by, or is under common control with You. For 82 | purposes of this definition, "control" means (a) the power, direct 83 | or indirect, to cause the direction or management of such entity, 84 | whether by contract or otherwise, or (b) ownership of more than 85 | fifty percent (50%) of the outstanding shares or beneficial 86 | ownership of such entity. 87 | 88 | 2. License Grants and Conditions 89 | -------------------------------- 90 | 91 | 2.1. Grants 92 | 93 | Each Contributor hereby grants You a world-wide, royalty-free, 94 | non-exclusive license: 95 | 96 | (a) under intellectual property rights (other than patent or trademark) 97 | Licensable by such Contributor to use, reproduce, make available, 98 | modify, display, perform, distribute, and otherwise exploit its 99 | Contributions, either on an unmodified basis, with Modifications, or 100 | as part of a Larger Work; and 101 | 102 | (b) under Patent Claims of such Contributor to make, use, sell, offer 103 | for sale, have made, import, and otherwise transfer either its 104 | Contributions or its Contributor Version. 105 | 106 | 2.2. Effective Date 107 | 108 | The licenses granted in Section 2.1 with respect to any Contribution 109 | become effective for each Contribution on the date the Contributor first 110 | distributes such Contribution. 111 | 112 | 2.3. Limitations on Grant Scope 113 | 114 | The licenses granted in this Section 2 are the only rights granted under 115 | this License. No additional rights or licenses will be implied from the 116 | distribution or licensing of Covered Software under this License. 117 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 118 | Contributor: 119 | 120 | (a) for any code that a Contributor has removed from Covered Software; 121 | or 122 | 123 | (b) for infringements caused by: (i) Your and any other third party's 124 | modifications of Covered Software, or (ii) the combination of its 125 | Contributions with other software (except as part of its Contributor 126 | Version); or 127 | 128 | (c) under Patent Claims infringed by Covered Software in the absence of 129 | its Contributions. 130 | 131 | This License does not grant any rights in the trademarks, service marks, 132 | or logos of any Contributor (except as may be necessary to comply with 133 | the notice requirements in Section 3.4). 134 | 135 | 2.4. Subsequent Licenses 136 | 137 | No Contributor makes additional grants as a result of Your choice to 138 | distribute the Covered Software under a subsequent version of this 139 | License (see Section 10.2) or under the terms of a Secondary License (if 140 | permitted under the terms of Section 3.3). 141 | 142 | 2.5. Representation 143 | 144 | Each Contributor represents that the Contributor believes its 145 | Contributions are its original creation(s) or it has sufficient rights 146 | to grant the rights to its Contributions conveyed by this License. 147 | 148 | 2.6. Fair Use 149 | 150 | This License is not intended to limit any rights You have under 151 | applicable copyright doctrines of fair use, fair dealing, or other 152 | equivalents. 153 | 154 | 2.7. Conditions 155 | 156 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 157 | in Section 2.1. 158 | 159 | 3. Responsibilities 160 | ------------------- 161 | 162 | 3.1. Distribution of Source Form 163 | 164 | All distribution of Covered Software in Source Code Form, including any 165 | Modifications that You create or to which You contribute, must be under 166 | the terms of this License. You must inform recipients that the Source 167 | Code Form of the Covered Software is governed by the terms of this 168 | License, and how they can obtain a copy of this License. You may not 169 | attempt to alter or restrict the recipients' rights in the Source Code 170 | Form. 171 | 172 | 3.2. Distribution of Executable Form 173 | 174 | If You distribute Covered Software in Executable Form then: 175 | 176 | (a) such Covered Software must also be made available in Source Code 177 | Form, as described in Section 3.1, and You must inform recipients of 178 | the Executable Form how they can obtain a copy of such Source Code 179 | Form by reasonable means in a timely manner, at a charge no more 180 | than the cost of distribution to the recipient; and 181 | 182 | (b) You may distribute such Executable Form under the terms of this 183 | License, or sublicense it under different terms, provided that the 184 | license for the Executable Form does not attempt to limit or alter 185 | the recipients' rights in the Source Code Form under this License. 186 | 187 | 3.3. Distribution of a Larger Work 188 | 189 | You may create and distribute a Larger Work under terms of Your choice, 190 | provided that You also comply with the requirements of this License for 191 | the Covered Software. If the Larger Work is a combination of Covered 192 | Software with a work governed by one or more Secondary Licenses, and the 193 | Covered Software is not Incompatible With Secondary Licenses, this 194 | License permits You to additionally distribute such Covered Software 195 | under the terms of such Secondary License(s), so that the recipient of 196 | the Larger Work may, at their option, further distribute the Covered 197 | Software under the terms of either this License or such Secondary 198 | License(s). 199 | 200 | 3.4. Notices 201 | 202 | You may not remove or alter the substance of any license notices 203 | (including copyright notices, patent notices, disclaimers of warranty, 204 | or limitations of liability) contained within the Source Code Form of 205 | the Covered Software, except that You may alter any license notices to 206 | the extent required to remedy known factual inaccuracies. 207 | 208 | 3.5. Application of Additional Terms 209 | 210 | You may choose to offer, and to charge a fee for, warranty, support, 211 | indemnity or liability obligations to one or more recipients of Covered 212 | Software. However, You may do so only on Your own behalf, and not on 213 | behalf of any Contributor. You must make it absolutely clear that any 214 | such warranty, support, indemnity, or liability obligation is offered by 215 | You alone, and You hereby agree to indemnify every Contributor for any 216 | liability incurred by such Contributor as a result of warranty, support, 217 | indemnity or liability terms You offer. You may include additional 218 | disclaimers of warranty and limitations of liability specific to any 219 | jurisdiction. 220 | 221 | 4. Inability to Comply Due to Statute or Regulation 222 | --------------------------------------------------- 223 | 224 | If it is impossible for You to comply with any of the terms of this 225 | License with respect to some or all of the Covered Software due to 226 | statute, judicial order, or regulation then You must: (a) comply with 227 | the terms of this License to the maximum extent possible; and (b) 228 | describe the limitations and the code they affect. Such description must 229 | be placed in a text file included with all distributions of the Covered 230 | Software under this License. Except to the extent prohibited by statute 231 | or regulation, such description must be sufficiently detailed for a 232 | recipient of ordinary skill to be able to understand it. 233 | 234 | 5. Termination 235 | -------------- 236 | 237 | 5.1. The rights granted under this License will terminate automatically 238 | if You fail to comply with any of its terms. However, if You become 239 | compliant, then the rights granted under this License from a particular 240 | Contributor are reinstated (a) provisionally, unless and until such 241 | Contributor explicitly and finally terminates Your grants, and (b) on an 242 | ongoing basis, if such Contributor fails to notify You of the 243 | non-compliance by some reasonable means prior to 60 days after You have 244 | come back into compliance. Moreover, Your grants from a particular 245 | Contributor are reinstated on an ongoing basis if such Contributor 246 | notifies You of the non-compliance by some reasonable means, this is the 247 | first time You have received notice of non-compliance with this License 248 | from such Contributor, and You become compliant prior to 30 days after 249 | Your receipt of the notice. 250 | 251 | 5.2. If You initiate litigation against any entity by asserting a patent 252 | infringement claim (excluding declaratory judgment actions, 253 | counter-claims, and cross-claims) alleging that a Contributor Version 254 | directly or indirectly infringes any patent, then the rights granted to 255 | You by any and all Contributors for the Covered Software under Section 256 | 2.1 of this License shall terminate. 257 | 258 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 259 | end user license agreements (excluding distributors and resellers) which 260 | have been validly granted by You or Your distributors under this License 261 | prior to termination shall survive termination. 262 | 263 | ************************************************************************ 264 | * * 265 | * 6. Disclaimer of Warranty * 266 | * ------------------------- * 267 | * * 268 | * Covered Software is provided under this License on an "as is" * 269 | * basis, without warranty of any kind, either expressed, implied, or * 270 | * statutory, including, without limitation, warranties that the * 271 | * Covered Software is free of defects, merchantable, fit for a * 272 | * particular purpose or non-infringing. The entire risk as to the * 273 | * quality and performance of the Covered Software is with You. * 274 | * Should any Covered Software prove defective in any respect, You * 275 | * (not any Contributor) assume the cost of any necessary servicing, * 276 | * repair, or correction. This disclaimer of warranty constitutes an * 277 | * essential part of this License. No use of any Covered Software is * 278 | * authorized under this License except under this disclaimer. * 279 | * * 280 | ************************************************************************ 281 | 282 | ************************************************************************ 283 | * * 284 | * 7. Limitation of Liability * 285 | * -------------------------- * 286 | * * 287 | * Under no circumstances and under no legal theory, whether tort * 288 | * (including negligence), contract, or otherwise, shall any * 289 | * Contributor, or anyone who distributes Covered Software as * 290 | * permitted above, be liable to You for any direct, indirect, * 291 | * special, incidental, or consequential damages of any character * 292 | * including, without limitation, damages for lost profits, loss of * 293 | * goodwill, work stoppage, computer failure or malfunction, or any * 294 | * and all other commercial damages or losses, even if such party * 295 | * shall have been informed of the possibility of such damages. This * 296 | * limitation of liability shall not apply to liability for death or * 297 | * personal injury resulting from such party's negligence to the * 298 | * extent applicable law prohibits such limitation. Some * 299 | * jurisdictions do not allow the exclusion or limitation of * 300 | * incidental or consequential damages, so this exclusion and * 301 | * limitation may not apply to You. * 302 | * * 303 | ************************************************************************ 304 | 305 | 8. Litigation 306 | ------------- 307 | 308 | Any litigation relating to this License may be brought only in the 309 | courts of a jurisdiction where the defendant maintains its principal 310 | place of business and such litigation shall be governed by laws of that 311 | jurisdiction, without reference to its conflict-of-law provisions. 312 | Nothing in this Section shall prevent a party's ability to bring 313 | cross-claims or counter-claims. 314 | 315 | 9. Miscellaneous 316 | ---------------- 317 | 318 | This License represents the complete agreement concerning the subject 319 | matter hereof. If any provision of this License is held to be 320 | unenforceable, such provision shall be reformed only to the extent 321 | necessary to make it enforceable. Any law or regulation which provides 322 | that the language of a contract shall be construed against the drafter 323 | shall not be used to construe this License against a Contributor. 324 | 325 | 10. Versions of the License 326 | --------------------------- 327 | 328 | 10.1. New Versions 329 | 330 | Mozilla Foundation is the license steward. Except as provided in Section 331 | 10.3, no one other than the license steward has the right to modify or 332 | publish new versions of this License. Each version will be given a 333 | distinguishing version number. 334 | 335 | 10.2. Effect of New Versions 336 | 337 | You may distribute the Covered Software under the terms of the version 338 | of the License under which You originally received the Covered Software, 339 | or under the terms of any subsequent version published by the license 340 | steward. 341 | 342 | 10.3. Modified Versions 343 | 344 | If you create software not governed by this License, and you want to 345 | create a new license for such software, you may create and use a 346 | modified version of this License if you rename the license and remove 347 | any references to the name of the license steward (except to note that 348 | such modified license differs from this License). 349 | 350 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 351 | Licenses 352 | 353 | If You choose to distribute Source Code Form that is Incompatible With 354 | Secondary Licenses under the terms of this version of the License, the 355 | notice described in Exhibit B of this License must be attached. 356 | 357 | Exhibit A - Source Code Form License Notice 358 | ------------------------------------------- 359 | 360 | This Source Code Form is subject to the terms of the Mozilla Public 361 | License, v. 2.0. If a copy of the MPL was not distributed with this 362 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 363 | 364 | If it is not possible or desirable to put the notice in a particular 365 | file, then You may include the notice in a location (such as a LICENSE 366 | file in a relevant directory) where a recipient would be likely to look 367 | for such a notice. 368 | 369 | You may add additional accurate notices of copyright ownership. 370 | 371 | Exhibit B - "Incompatible With Secondary Licenses" Notice 372 | --------------------------------------------------------- 373 | 374 | This Source Code Form is "Incompatible With Secondary Licenses", as 375 | defined by the Mozilla Public License, v. 2.0. 376 | 377 | ------------------------------------------------------------------------- 378 | This component includes substantial portions of the following third-party 379 | packages in accordance with the following licenses: 380 | 381 | Package: cancellation@1.0.0 382 | repository: ForbesLindesay/cancellation 383 | License: MIT 384 | License Source: LICENSE 385 | Source Text: 386 | 387 | Copyright (c) 2013 Forbes Lindesay 388 | 389 | Permission is hereby granted, free of charge, to any person obtaining a copy 390 | of this software and associated documentation files (the "Software"), to deal 391 | in the Software without restriction, including without limitation the rights 392 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 393 | copies of the Software, and to permit persons to whom the Software is 394 | furnished to do so, subject to the following conditions: 395 | 396 | The above copyright notice and this permission notice shall be included in 397 | all copies or substantial portions of the Software. 398 | 399 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 400 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 401 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 402 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 403 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 404 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 405 | THE SOFTWARE. 406 | ------------------------------------------------------------------------- 407 | 408 | This application framework includes the following dependencies 409 | 410 | Package: promise@4.0.0 411 | repository: then/promise, 412 | License: MIT 413 | License Source: LICENSE 414 | Source Text: 415 | 416 | Copyright (c) 2014 Forbes Lindesay 417 | 418 | Permission is hereby granted, free of charge, to any person obtaining a copy 419 | of this software and associated documentation files (the "Software"), to deal 420 | in the Software without restriction, including without limitation the rights 421 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 422 | copies of the Software, and to permit persons to whom the Software is 423 | furnished to do so, subject to the following conditions: 424 | 425 | The above copyright notice and this permission notice shall be included in 426 | all copies or substantial portions of the Software. 427 | 428 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 429 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 430 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 431 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 432 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 433 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 434 | THE SOFTWARE. 435 | 436 | ------------------------------------------------------------------------- 437 | Package: nodelike@0.1.0 438 | repository: node-app/Nodelike, 439 | License: MPL-2.0 440 | License Source: LICENSE 441 | Source Text: 442 | 443 | Mozilla Public License Version 2.0 444 | ================================== 445 | 446 | 1. Definitions 447 | -------------- 448 | 449 | 1.1. "Contributor" 450 | means each individual or legal entity that creates, contributes to 451 | the creation of, or owns Covered Software. 452 | 453 | 1.2. "Contributor Version" 454 | means the combination of the Contributions of others (if any) used 455 | by a Contributor and that particular Contributor's Contribution. 456 | 457 | 1.3. "Contribution" 458 | means Covered Software of a particular Contributor. 459 | 460 | 1.4. "Covered Software" 461 | means Source Code Form to which the initial Contributor has attached 462 | the notice in Exhibit A, the Executable Form of such Source Code 463 | Form, and Modifications of such Source Code Form, in each case 464 | including portions thereof. 465 | 466 | 1.5. "Incompatible With Secondary Licenses" 467 | means 468 | 469 | (a) that the initial Contributor has attached the notice described 470 | in Exhibit B to the Covered Software; or 471 | 472 | (b) that the Covered Software was made available under the terms of 473 | version 1.1 or earlier of the License, but not also under the 474 | terms of a Secondary License. 475 | 476 | 1.6. "Executable Form" 477 | means any form of the work other than Source Code Form. 478 | 479 | 1.7. "Larger Work" 480 | means a work that combines Covered Software with other material, in 481 | a separate file or files, that is not Covered Software. 482 | 483 | 1.8. "License" 484 | means this document. 485 | 486 | 1.9. "Licensable" 487 | means having the right to grant, to the maximum extent possible, 488 | whether at the time of the initial grant or subsequently, any and 489 | all of the rights conveyed by this License. 490 | 491 | 1.10. "Modifications" 492 | means any of the following: 493 | 494 | (a) any file in Source Code Form that results from an addition to, 495 | deletion from, or modification of the contents of Covered 496 | Software; or 497 | 498 | (b) any new file in Source Code Form that contains any Covered 499 | Software. 500 | 501 | 1.11. "Patent Claims" of a Contributor 502 | means any patent claim(s), including without limitation, method, 503 | process, and apparatus claims, in any patent Licensable by such 504 | Contributor that would be infringed, but for the grant of the 505 | License, by the making, using, selling, offering for sale, having 506 | made, import, or transfer of either its Contributions or its 507 | Contributor Version. 508 | 509 | 1.12. "Secondary License" 510 | means either the GNU General Public License, Version 2.0, the GNU 511 | Lesser General Public License, Version 2.1, the GNU Affero General 512 | Public License, Version 3.0, or any later versions of those 513 | licenses. 514 | 515 | 1.13. "Source Code Form" 516 | means the form of the work preferred for making modifications. 517 | 518 | 1.14. "You" (or "Your") 519 | means an individual or a legal entity exercising rights under this 520 | License. For legal entities, "You" includes any entity that 521 | controls, is controlled by, or is under common control with You. For 522 | purposes of this definition, "control" means (a) the power, direct 523 | or indirect, to cause the direction or management of such entity, 524 | whether by contract or otherwise, or (b) ownership of more than 525 | fifty percent (50%) of the outstanding shares or beneficial 526 | ownership of such entity. 527 | 528 | 2. License Grants and Conditions 529 | -------------------------------- 530 | 531 | 2.1. Grants 532 | 533 | Each Contributor hereby grants You a world-wide, royalty-free, 534 | non-exclusive license: 535 | 536 | (a) under intellectual property rights (other than patent or trademark) 537 | Licensable by such Contributor to use, reproduce, make available, 538 | modify, display, perform, distribute, and otherwise exploit its 539 | Contributions, either on an unmodified basis, with Modifications, or 540 | as part of a Larger Work; and 541 | 542 | (b) under Patent Claims of such Contributor to make, use, sell, offer 543 | for sale, have made, import, and otherwise transfer either its 544 | Contributions or its Contributor Version. 545 | 546 | 2.2. Effective Date 547 | 548 | The licenses granted in Section 2.1 with respect to any Contribution 549 | become effective for each Contribution on the date the Contributor first 550 | distributes such Contribution. 551 | 552 | 2.3. Limitations on Grant Scope 553 | 554 | The licenses granted in this Section 2 are the only rights granted under 555 | this License. No additional rights or licenses will be implied from the 556 | distribution or licensing of Covered Software under this License. 557 | Notwithstanding Section 2.1(b) above, no patent license is granted by a 558 | Contributor: 559 | 560 | (a) for any code that a Contributor has removed from Covered Software; 561 | or 562 | 563 | (b) for infringements caused by: (i) Your and any other third party's 564 | modifications of Covered Software, or (ii) the combination of its 565 | Contributions with other software (except as part of its Contributor 566 | Version); or 567 | 568 | (c) under Patent Claims infringed by Covered Software in the absence of 569 | its Contributions. 570 | 571 | This License does not grant any rights in the trademarks, service marks, 572 | or logos of any Contributor (except as may be necessary to comply with 573 | the notice requirements in Section 3.4). 574 | 575 | 2.4. Subsequent Licenses 576 | 577 | No Contributor makes additional grants as a result of Your choice to 578 | distribute the Covered Software under a subsequent version of this 579 | License (see Section 10.2) or under the terms of a Secondary License (if 580 | permitted under the terms of Section 3.3). 581 | 582 | 2.5. Representation 583 | 584 | Each Contributor represents that the Contributor believes its 585 | Contributions are its original creation(s) or it has sufficient rights 586 | to grant the rights to its Contributions conveyed by this License. 587 | 588 | 2.6. Fair Use 589 | 590 | This License is not intended to limit any rights You have under 591 | applicable copyright doctrines of fair use, fair dealing, or other 592 | equivalents. 593 | 594 | 2.7. Conditions 595 | 596 | Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted 597 | in Section 2.1. 598 | 599 | 3. Responsibilities 600 | ------------------- 601 | 602 | 3.1. Distribution of Source Form 603 | 604 | All distribution of Covered Software in Source Code Form, including any 605 | Modifications that You create or to which You contribute, must be under 606 | the terms of this License. You must inform recipients that the Source 607 | Code Form of the Covered Software is governed by the terms of this 608 | License, and how they can obtain a copy of this License. You may not 609 | attempt to alter or restrict the recipients' rights in the Source Code 610 | Form. 611 | 612 | 3.2. Distribution of Executable Form 613 | 614 | If You distribute Covered Software in Executable Form then: 615 | 616 | (a) such Covered Software must also be made available in Source Code 617 | Form, as described in Section 3.1, and You must inform recipients of 618 | the Executable Form how they can obtain a copy of such Source Code 619 | Form by reasonable means in a timely manner, at a charge no more 620 | than the cost of distribution to the recipient; and 621 | 622 | (b) You may distribute such Executable Form under the terms of this 623 | License, or sublicense it under different terms, provided that the 624 | license for the Executable Form does not attempt to limit or alter 625 | the recipients' rights in the Source Code Form under this License. 626 | 627 | 3.3. Distribution of a Larger Work 628 | 629 | You may create and distribute a Larger Work under terms of Your choice, 630 | provided that You also comply with the requirements of this License for 631 | the Covered Software. If the Larger Work is a combination of Covered 632 | Software with a work governed by one or more Secondary Licenses, and the 633 | Covered Software is not Incompatible With Secondary Licenses, this 634 | License permits You to additionally distribute such Covered Software 635 | under the terms of such Secondary License(s), so that the recipient of 636 | the Larger Work may, at their option, further distribute the Covered 637 | Software under the terms of either this License or such Secondary 638 | License(s). 639 | 640 | 3.4. Notices 641 | 642 | You may not remove or alter the substance of any license notices 643 | (including copyright notices, patent notices, disclaimers of warranty, 644 | or limitations of liability) contained within the Source Code Form of 645 | the Covered Software, except that You may alter any license notices to 646 | the extent required to remedy known factual inaccuracies. 647 | 648 | 3.5. Application of Additional Terms 649 | 650 | You may choose to offer, and to charge a fee for, warranty, support, 651 | indemnity or liability obligations to one or more recipients of Covered 652 | Software. However, You may do so only on Your own behalf, and not on 653 | behalf of any Contributor. You must make it absolutely clear that any 654 | such warranty, support, indemnity, or liability obligation is offered by 655 | You alone, and You hereby agree to indemnify every Contributor for any 656 | liability incurred by such Contributor as a result of warranty, support, 657 | indemnity or liability terms You offer. You may include additional 658 | disclaimers of warranty and limitations of liability specific to any 659 | jurisdiction. 660 | 661 | 4. Inability to Comply Due to Statute or Regulation 662 | --------------------------------------------------- 663 | 664 | If it is impossible for You to comply with any of the terms of this 665 | License with respect to some or all of the Covered Software due to 666 | statute, judicial order, or regulation then You must: (a) comply with 667 | the terms of this License to the maximum extent possible; and (b) 668 | describe the limitations and the code they affect. Such description must 669 | be placed in a text file included with all distributions of the Covered 670 | Software under this License. Except to the extent prohibited by statute 671 | or regulation, such description must be sufficiently detailed for a 672 | recipient of ordinary skill to be able to understand it. 673 | 674 | 5. Termination 675 | -------------- 676 | 677 | 5.1. The rights granted under this License will terminate automatically 678 | if You fail to comply with any of its terms. However, if You become 679 | compliant, then the rights granted under this License from a particular 680 | Contributor are reinstated (a) provisionally, unless and until such 681 | Contributor explicitly and finally terminates Your grants, and (b) on an 682 | ongoing basis, if such Contributor fails to notify You of the 683 | non-compliance by some reasonable means prior to 60 days after You have 684 | come back into compliance. Moreover, Your grants from a particular 685 | Contributor are reinstated on an ongoing basis if such Contributor 686 | notifies You of the non-compliance by some reasonable means, this is the 687 | first time You have received notice of non-compliance with this License 688 | from such Contributor, and You become compliant prior to 30 days after 689 | Your receipt of the notice. 690 | 691 | 5.2. If You initiate litigation against any entity by asserting a patent 692 | infringement claim (excluding declaratory judgment actions, 693 | counter-claims, and cross-claims) alleging that a Contributor Version 694 | directly or indirectly infringes any patent, then the rights granted to 695 | You by any and all Contributors for the Covered Software under Section 696 | 2.1 of this License shall terminate. 697 | 698 | 5.3. In the event of termination under Sections 5.1 or 5.2 above, all 699 | end user license agreements (excluding distributors and resellers) which 700 | have been validly granted by You or Your distributors under this License 701 | prior to termination shall survive termination. 702 | 703 | ************************************************************************ 704 | * * 705 | * 6. Disclaimer of Warranty * 706 | * ------------------------- * 707 | * * 708 | * Covered Software is provided under this License on an "as is" * 709 | * basis, without warranty of any kind, either expressed, implied, or * 710 | * statutory, including, without limitation, warranties that the * 711 | * Covered Software is free of defects, merchantable, fit for a * 712 | * particular purpose or non-infringing. The entire risk as to the * 713 | * quality and performance of the Covered Software is with You. * 714 | * Should any Covered Software prove defective in any respect, You * 715 | * (not any Contributor) assume the cost of any necessary servicing, * 716 | * repair, or correction. This disclaimer of warranty constitutes an * 717 | * essential part of this License. No use of any Covered Software is * 718 | * authorized under this License except under this disclaimer. * 719 | * * 720 | ************************************************************************ 721 | 722 | ************************************************************************ 723 | * * 724 | * 7. Limitation of Liability * 725 | * -------------------------- * 726 | * * 727 | * Under no circumstances and under no legal theory, whether tort * 728 | * (including negligence), contract, or otherwise, shall any * 729 | * Contributor, or anyone who distributes Covered Software as * 730 | * permitted above, be liable to You for any direct, indirect, * 731 | * special, incidental, or consequential damages of any character * 732 | * including, without limitation, damages for lost profits, loss of * 733 | * goodwill, work stoppage, computer failure or malfunction, or any * 734 | * and all other commercial damages or losses, even if such party * 735 | * shall have been informed of the possibility of such damages. This * 736 | * limitation of liability shall not apply to liability for death or * 737 | * personal injury resulting from such party's negligence to the * 738 | * extent applicable law prohibits such limitation. Some * 739 | * jurisdictions do not allow the exclusion or limitation of * 740 | * incidental or consequential damages, so this exclusion and * 741 | * limitation may not apply to You. * 742 | * * 743 | ************************************************************************ 744 | 745 | 8. Litigation 746 | ------------- 747 | 748 | Any litigation relating to this License may be brought only in the 749 | courts of a jurisdiction where the defendant maintains its principal 750 | place of business and such litigation shall be governed by laws of that 751 | jurisdiction, without reference to its conflict-of-law provisions. 752 | Nothing in this Section shall prevent a party's ability to bring 753 | cross-claims or counter-claims. 754 | 755 | 9. Miscellaneous 756 | ---------------- 757 | 758 | This License represents the complete agreement concerning the subject 759 | matter hereof. If any provision of this License is held to be 760 | unenforceable, such provision shall be reformed only to the extent 761 | necessary to make it enforceable. Any law or regulation which provides 762 | that the language of a contract shall be construed against the drafter 763 | shall not be used to construe this License against a Contributor. 764 | 765 | 10. Versions of the License 766 | --------------------------- 767 | 768 | 10.1. New Versions 769 | 770 | Mozilla Foundation is the license steward. Except as provided in Section 771 | 10.3, no one other than the license steward has the right to modify or 772 | publish new versions of this License. Each version will be given a 773 | distinguishing version number. 774 | 775 | 10.2. Effect of New Versions 776 | 777 | You may distribute the Covered Software under the terms of the version 778 | of the License under which You originally received the Covered Software, 779 | or under the terms of any subsequent version published by the license 780 | steward. 781 | 782 | 10.3. Modified Versions 783 | 784 | If you create software not governed by this License, and you want to 785 | create a new license for such software, you may create and use a 786 | modified version of this License if you rename the license and remove 787 | any references to the name of the license steward (except to note that 788 | such modified license differs from this License). 789 | 790 | 10.4. Distributing Source Code Form that is Incompatible With Secondary 791 | Licenses 792 | 793 | If You choose to distribute Source Code Form that is Incompatible With 794 | Secondary Licenses under the terms of this version of the License, the 795 | notice described in Exhibit B of this License must be attached. 796 | 797 | Exhibit A - Source Code Form License Notice 798 | ------------------------------------------- 799 | 800 | This Source Code Form is subject to the terms of the Mozilla Public 801 | License, v. 2.0. If a copy of the MPL was not distributed with this 802 | file, You can obtain one at http://mozilla.org/MPL/2.0/. 803 | 804 | If it is not possible or desirable to put the notice in a particular 805 | file, then You may include the notice in a location (such as a LICENSE 806 | file in a relevant directory) where a recipient would be likely to look 807 | for such a notice. 808 | 809 | You may add additional accurate notices of copyright ownership. 810 | 811 | Exhibit B - "Incompatible With Secondary Licenses" Notice 812 | --------------------------------------------------------- 813 | 814 | This Source Code Form is "Incompatible With Secondary Licenses", as 815 | defined by the Mozilla Public License, v. 2.0. 816 | 817 | ========================================================================= 818 | OTHER RELEVANT LICENSES 819 | 820 | This application framework is inspired by the following open source projects 821 | and may use various concepts from them. 822 | 823 | ------------------------------------------------------------------------- 824 | Package: owinjs 825 | Repository: OwinJS/owinjs 826 | License: MIT 827 | License Source: LICENSE 828 | Source Text: 829 | 830 | Copyright (c) 2014 Guy Barnard 831 | 832 | Permission is hereby granted, free of charge, to any person obtaining a copy 833 | of this software and associated documentation files (the "Software"), to deal 834 | in the Software without restriction, including without limitation the rights 835 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 836 | copies of the Software, and to permit persons to whom the Software is 837 | furnished to do so, subject to the following conditions: 838 | 839 | The above copyright notice and this permission notice shall be included in 840 | all copies or substantial portions of the Software. 841 | 842 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 843 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 844 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 845 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 846 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 847 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 848 | THE SOFTWARE. 849 | 850 | ------------------------------------------------------------------------- 851 | Package: owinjs-spec@1.0.0 852 | repository: OwinJS/owinjs-spec, 853 | License: CC BY 3.0 854 | License Source: LICENSE 855 | Source Text: 856 | 857 | Copyright (c) 2014 owinjs.org 858 | 859 | Creative Commons Attribution 3.0 United States License 860 | 861 | THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. 862 | 863 | BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 864 | 865 | 1. Definitions 866 | 867 | "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. 868 | "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. 869 | "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. 870 | "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. 871 | "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. 872 | "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. 873 | "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. 874 | "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. 875 | "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 876 | 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 877 | 878 | 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: 879 | 880 | to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; 881 | to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; 882 | to Distribute and Publicly Perform the Work including as incorporated in Collections; and, 883 | to Distribute and Publicly Perform Adaptations. 884 | For the avoidance of doubt: 885 | 886 | Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; 887 | Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, 888 | Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. 889 | The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 890 | 891 | 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 892 | 893 | You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. 894 | If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. 895 | Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 896 | 5. Representations, Warranties and Disclaimer 897 | 898 | UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 899 | 900 | 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 901 | 902 | 7. Termination 903 | 904 | This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. 905 | Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 906 | 8. Miscellaneous 907 | 908 | Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. 909 | Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. 910 | If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 911 | No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. 912 | This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. 913 | The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. 914 | 915 | ------------------------------------------------------------------------- 916 | Package: OWIN@1.0.0 917 | repository: http://owin.org/spec/owin-1.0.0.html 918 | License: CC BY 3.0 919 | License Source: LICENSE 920 | Source Text: 921 | 922 | Copyright (c) 2012 OWIN Contributors 923 | 924 | Creative Commons Attribution 3.0 United States License 925 | 926 | THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. 927 | 928 | BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 929 | 930 | 1. Definitions 931 | 932 | "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. 933 | "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. 934 | "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. 935 | "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. 936 | "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. 937 | "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. 938 | "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. 939 | "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. 940 | "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 941 | 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 942 | 943 | 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: 944 | 945 | to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; 946 | to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; 947 | to Distribute and Publicly Perform the Work including as incorporated in Collections; and, 948 | to Distribute and Publicly Perform Adaptations. 949 | For the avoidance of doubt: 950 | 951 | Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; 952 | Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, 953 | Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. 954 | The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 955 | 956 | 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: 957 | 958 | You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested. 959 | If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. 960 | Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 961 | 5. Representations, Warranties and Disclaimer 962 | 963 | UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 964 | 965 | 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 966 | 967 | 7. Termination 968 | 969 | This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. 970 | Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 971 | 8. Miscellaneous 972 | 973 | Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. 974 | Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. 975 | If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 976 | No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. 977 | This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. 978 | The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. 979 | 980 | ------------------------------------------------------------------------- 981 | 982 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :osx, '10.9' 2 | 3 | pod 'Nodelike', :git => 'https://github.com/node-app/Nodelike.git', :commit => '5e65bbf1d1049f21e8d7e6a51221c63bc2107f0e', :submodules => true 4 | 5 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Nodelike (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - Nodelike (from `https://github.com/node-app/Nodelike.git`, commit `ded08e33b7e96ee52a48347e7575e7ddcab50997`) 6 | 7 | EXTERNAL SOURCES: 8 | Nodelike: 9 | :commit: ded08e33b7e96ee52a48347e7575e7ddcab50997 10 | :git: https://github.com/node-app/Nodelike.git 11 | :submodules: true 12 | 13 | SPEC CHECKSUMS: 14 | Nodelike: 1b3600e474d1b6a283d9abdff45012ee9e6687f1 15 | 16 | COCOAPODS: 0.29.0 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ******DO NOT USE** 2 | 3 | See **{NK} NodeKit** at [nodekit-io/nodekit](https://github.com/nodekit-io/nodekit) for the full working replacement. This was partly a rename and partly a major refactoring, but the Windows and other platform code will be re-used, so keeping this repository open for a bit. 4 | 5 | ******** 6 | 7 |  8 | 9 | ## Overview: A Native Web Application Kit 10 | 11 | **nodeAppKit** is a lean and mean app development kit for node.js-based desktop **and** mobile client applications; it's based on node.js, but instead of using a separate embedded V8 engine or the blink chromium renderer, nodeAppKit just uses the native javascript and html5 engines of the host operating system. 12 | 13 | Most modern operatings systems (OSX 10.9+, Windows 8.1+, modern Linux distributions, ioS 5+, ANDROID) now contain a high performance HTML5 rendering and javascript engines, often based on the same open source WebKit origin of Blink and V8. 14 | 15 | In the past, version disparity made a framework like nodeAppKit impractic, but now it makes for very lean, fast loading modern apps, that are app-store compatible out of the box. 16 | 17 | Check out the [/app](https://github.com/OwinJS/nodeAppKit/tree/master/app) folder or the [demo app](https://github.com/OwinJS/owinjs-demo) to see how to write an app. 18 | 19 | ### Screenshot 20 | [](https://github.com/OwinJS/owinjs-demo) 21 | 22 | Write once, deploy anywhere: desktop, mobile: windows/RT/phone, OSX/iOS, linux, android, **AND tradititional node.js server/client browser**, all with the same code. You no longer need to maintain separate server and client versions of modules, or package some with Browserify/Bower/Component.io and some with NPM. 23 | 24 | Same application code on all these platforms without any conversion, compile switches etc. 25 | 26 | Code in Javascript, with UI in HTML/CSS/javascript using your favorite template engine; Razor (JS) View Engine provided as preferred option, but we also enable space-pen as used by GitHub atom. Coffeescript, Less, or whatever you want all will work. 27 | 28 | Continue to write your applications in server / browser paradigm, but both run embedded in same process on the device with no networking required; access native functions (GPS, gyroscope, printing etc.) as available using a standards-based future proofed interface (OWIN/JS). 29 | 30 | ***EARLY PROOF OF CONCEPT ONLY*** 31 | 32 | Open source under Mozilla Public License. 33 | 34 | 35 | Note: **nodeAppKit** is an implementation of the open source node.app **NodeLike** library, and most of the functionality would not be possible without it. 36 | 37 | All we do is provide a host shell, hook up the webview to the javascript (nodelike) engine, and then provide the integration logic across both to make a seamless client-server. We are however quite proud of the OWIN/JS implementation which differentiates this application from being Yet Another Native Web App framework. 38 | 39 | ### About 40 | 41 | nodeAppKit is based on NodeLike, an open source project to implement a roughly Node.JS-compatible interface using JavaScriptCore.framework on iOS 7 and OS X Mavericks. 42 | 43 | nodeAppKit is currently in an incomplete state, but does compile and runs basic node, connect, express and OWIN/JS applications. 44 | 45 | It is conceptually similar to node-webkit and GitHub atom, but runs on mobile platforms, within appstores and even on servers, and doesnt require changes to server side code when porting a web app (or vice versa). 46 | 47 | ### Features 48 | 49 | - Integrated HTML5 standards based browser (webkit/trident) based browser, but with no 60Mb webkit executable (Chromium CEF optional on Windows instead of built-in IE11/Trident) 50 | 51 | - Integrated node.js runtime (re-uses javascript code from node.js project with light weight native libraries and built in javascript engines, apple javascriptcore or microsoft chakra, instead of Chromium V8) 52 | 53 | - Loads quickly as both webview and javascript engine are native to operating system, not linked libraries 54 | 55 | - Designed to be app store friendly (Apple, Microsoft, Android -- see roadmap) 56 | 57 | - Built in javascript debugger 58 | 59 | - Requires no networking; instead uses browser custom scheme to invoke HTTP-like requests to application in node.js or OWIN format with no ports opened 60 | 61 | - Can use networking just like any other node app (libuv and http parser built in) 62 | 63 | - Creates browser UI with no COCOA coding required 64 | 65 | - Does not require special client side code; just re-use your existing node.js express or connect applications, but run embedded within the app, not in a separate process or server 66 | 67 | - Extensibility built in; instead of hardcoding to undocumented node.js (req, res) interfaces, abstract web server as a standard implementation of an OWIN server (with translation back to node.js http/connect/express format for compatability) 68 | 69 | - OWIN/JS = Open Web Interface for .NET and node.js, with simple and [well-documented](http://owinjs.org) interface 70 | 71 | - node.js is default provided pipeline, but other pipelines can be plugged in 72 | 73 | - Uses package.json manifest for configuration of initial node script and initial browser home page; extends node.js package format and same extensions as node-webkit where possible 74 | 75 | - Built in static file server from embedded resource bundle (bypasses node pipeline for efficiency and used during application startup for splash pages; files restricted to embedded resources for security and app store compatibility) 76 | 77 | - Use Razor View Engine (javascript-based) for simple, dynamic views and separation of model, view, controllers 78 | 79 | - Use websockets for interaction between UI and node.js app (for portability to cloud) 80 | 81 | - Use Cocoa Pods for Objective-C dependencies 82 | 83 | - Use NPM for node.js dependencies 84 | 85 | - Write once, deploy exact same application code for UI ***AND*** application logic across Windows Store, OS X, Linux, Android, iOS, Windows Phone, Windows Desktop, etc.; no compile switches, no separate repositories, etc. (just the node-appkit container that is platform specific); use the same code in traditional node.js server for remote web browser clients 86 | 87 | - node.js application can serve both local UI and remote web clients and remote node-appkit clients simultaneously 88 | 89 | ### How to Use 90 | Clone the project 91 | 92 | ```bash 93 | git clone https://github.com/OwinJS/nodeAppKit.git` 94 | ``` 95 | 96 | Get the Cocoa Pod dependencies 97 | 98 | ```bash 99 | pod install` 100 | ``` 101 | 102 | Replace all the files in the /app directory with your node.js application; even though it runs on the mac/pc/device, write it as if it is server side 103 | 104 | `package.json` and `index.js` contain the configuration and bootstrap code; use `npm install` from the /web folder to install any node dependencies 105 | 106 | use `require('owinjs')` instead of or in addition to `require('http')` 107 | 108 | Compile in Xcode and Archive/Validate/Distribute for local applications and iTunes App Store. 109 | 110 | For debugging purposes, just place a copy of the executable nodeAppKit.app in any folder containing an OwinJS application and run. If a package.json file is found in the same directory it will execute the app (in compiled in debug mode only for security reasons). 111 | 112 | ### Roadmap 113 | 114 | Create pod spec 115 | 116 | Port rest of domaba framework (closed .NET source) to open source javascript in this project 117 | 118 | Once working on OS X, intent is to add Windows Store and Windows desktop applications, with source compatability of applications; after that we'll do Windows Phone 8 119 | 120 | Tested on OS X only, requires simple porting to iOS; underlying frameworks are already portable. 121 | 122 | Finally we will port to Android 123 | 124 | In other words this will be a universal UI kit, with all code in javascript / 125 | 126 | ### Frameworks 127 | 128 | #### [OWIN/JS](http://owinjs.org) 129 | 130 | #### [javascriptcore](http://asciiwwdc.com/2013/sessions/615) 131 | 132 | #### [webkit](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DisplayWebContent/DisplayWebContent.html#//apple_ref/doc/uid/10000164i) 133 | 134 | #### [node.js](http://nodejs.org) 135 | 136 | #### [nodelike](https://github.com/node-app/Nodelike) 137 | 138 | ### License 139 | 140 | Open source under Mozilla Public License 2.0. 141 | 142 | 143 | ### Author 144 | 145 | nodeAppKit container framework hand-coded by OwinJS; see frameworks above for respective authorship of the core components 146 | -------------------------------------------------------------------------------- /app-shared/owinjs-debug/index.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | 3 | var app = function(owin){ 4 | var e = process.debugException(); 5 | var fileName = e.locals['__filename']; 6 | var lines = e.source.split("\n"); 7 | 8 | var newSource = '
"; 15 | 16 | var message = []; 17 | message.push("-------------------------"); 18 | message.push("Exception: " + e.exception); 19 | message.push("Description: " + e.description); 20 | message.push("Filename: " +fileName); 21 | message.push(" lineNumber: " + e.lineNumber); 22 | message.push("sourceLine: " + e.sourceLine + ""); 23 | // message.push("Locals"); 24 | // e.locals.forEach(function(entry) {message.push(" " + entry);}); 25 | message.push("Call Stack"); 26 | e.callStack.forEach(function(entry) {message.push(" " + entry);}); 27 | console.log(message.join("\r")); 28 | 29 | owin["owin.ResponseStatusCode"] = 200; 30 | owin["owin.ResponseHeaders"]["Content-Type"] = "text/html"; 31 | 32 | owin["owin.ResponseBody"].write(""); 33 | owin["owin.ResponseBody"].write(""); 34 | owin["owin.ResponseBody"].write(message.join("'; 9 | 10 | for(var i=0; i
" + lines[i] + ""; 13 | } 14 | newSource += "
@e.description at line @e.lineNumber in @fileName
21 |![]() nodeAppKit |
34 |
Please replace the contents of the /app folder inside the application bundle with a valid OWIN/JS application | 36 |
nodeAppKit: mobile and desktop apps made simple with node.js and the Native Web.
20 | 21 |View the Project on GitHub OwinJS/nodeAppKit
22 | 23 | 24 |nodeAppKit, the lean and mean developers kit for node.js-based desktop and mobile client applications; well, it's based on core node.js source, but instead of using a separate embedded V8 engine or blink chromium renderer, nodeAppKit just uses the built in (native) javascript and html5 engines of the host operating system.
37 | 38 |Most modern operatings systems (OSX 10.9+, Windows 8.1+, modern Linux distributions, ioS 5+, ANDROID) now contain a high performance HTML5 rendering and javascript engines, often based on the same open source WebKit origin of Blink and V8. In the past, version disparity made a framework like nodeAppKit impractic, but now it makes for very lean, fast loading modern apps, that are app-store compatible out of the box.
39 | 40 |Write once, deploy anywhere: desktop, mobile: windows/RT/phone, OSX/iOS, linux, android, AND tradititional node.js server/client browser, all with the same code. You no longer need to maintain separate server and client versions of modules, or package some with Browserify/Bower/Component.io and some with NPM.
41 | 42 |Same application code on all these platforms without any conversion, compile switches etc.
43 | 44 |Code in Javascript, with UI in HTML/CSS/javascript using your favorite template engine; Razor (JS) View Engine provided as preferred option, but we also enable space-pen as used by GitHub atom. Coffeescript, Less, or whatever you want all will work.
45 | 46 |Continue to write your applications in server / browser paradigm, but both run embedded in same process on the device with no networking required; access native functions (GPS, gyroscope, printing etc.) as available using a standards-based future proofed interface (OWIN/JS).
47 | 48 |EARLY PROOF OF CONCEPT ONLY
49 | 50 |Open source under Mozilla Public License.
51 | 52 |Note: nodeAppKit is an implementation of the open source node.app NodeLike library, and most of the functionality would not be possible without it.
53 | 54 |All we do is provide a host shell, hook up the webview to the javascript (nodelike) engine, and then provide the integration logic across both to make a seamless client-server. We are however quite proud of the OWIN/JS implementation which differentiates this application from being Yet Another Native Web App framework.
55 | 56 |nodeAppKit is based on NodeLike, an open source project to implement a roughly Node.JS-compatible interface using JavaScriptCore.framework on iOS 7 and OS X Mavericks.
60 | 61 |nodeAppKit is currently in an incomplete state, but does compile and runs basic node, connect, express and OWIN/JS applications.
62 | 63 |It is conceptually similar to node-webkit and GitHub atom, but runs on mobile platforms, within appstores and even on servers, and doesnt require changes to server side code when porting a web app (or vice versa).
64 | 65 |Integrated HTML5 standards based browser (webkit/trident) based browser, but with no 60Mb webkit executable (Chromium CEF optional on Windows instead of built-in IE11/Trident)
Integrated node.js runtime (re-uses javascript code from node.js project with light weight native libraries and built in javascript engines, apple javascriptcore or microsoft chakra, instead of Chromium V8)
Loads quickly as both webview and javascript engine are native to operating system, not linked libraries
Designed to be app store friendly (Apple, Microsoft, Android -- see roadmap)
Built in javascript debugger
Requires no networking; instead uses browser custom scheme to invoke HTTP-like requests to application in node.js or OWIN format with no ports opened
Can use networking just like any other node app (libuv and http parser built in)
Creates browser UI with no COCOA coding required
Does not require special client side code; just re-use your existing node.js express or connect applications, but run embedded within the app, not in a separate process or server
Extensibility built in; instead of hardcoding to undocumented node.js (req, res) interfaces, abstract web server as a standard implementation of an OWIN server (with translation back to node.js http/connect/express format for compatability)
80 | 81 |OWIN/JS = Open Web Interface for .NET and node.js, with simple and well-documented interface
node.js is default provided pipeline, but other pipelines can be plugged in
Uses package.json manifest for configuration of initial node script and initial browser home page; extends node.js package format and same extensions as node-webkit where possible
Built in static file server from embedded resource bundle (bypasses node pipeline for efficiency and used during application startup for splash pages; files restricted to embedded resources for security and app store compatibility)
Use Razor View Engine (javascript-based) for simple, dynamic views and separation of model, view, controllers
Use websockets for interaction between UI and node.js app (for portability to cloud)
Use Cocoa Pods for Objective-C dependencies
Use NPM for node.js dependencies
Write once, deploy exact same application code for UI AND application logic across Windows Store, OS X, Linux, Android, iOS, Windows Phone, Windows Desktop, etc.; no compile switches, no separate repositories, etc. (just the node-appkit container that is platform specific); use the same code in traditional node.js server for remote web browser clients
node.js application can serve both local UI and remote web clients and remote node-appkit clients simultaneously
Clone the project
98 | 99 |git clone https://github.com/OwinJS/nodeAppKit.git`
100 |
Get the Cocoa Pod dependencies
103 | 104 |pod install`
105 |
Replace all the files in the /app directory with your node.js application; even though it runs on the mac/pc/device, write it as if it is server side
108 | 109 |package.json
and index.js
contain the configuration and bootstrap code; use npm install
from the /web folder to install any node dependencies
use require('owinjs')
instead of or in addition to require('http')
Compile in Xcode and Archive/Validate/Distribute for local applications and iTunes App Store.
114 | 115 |For debugging purposes, just place a copy of the executable nodeAppKit.app in any folder containing an OwinJS application and run. If a package.json file is found in the same directory it will execute the app (in compiled in debug mode only for security reasons).
116 | 117 |Create pod spec
121 | 122 |Port rest of domaba framework (closed .NET source) to open source javascript in this project
123 | 124 |Once working on OS X, intent is to add Windows Store and Windows desktop applications, with source compatability of applications; after that we'll do Windows Phone 8
125 | 126 |Tested on OS X only, requires simple porting to iOS; underlying frameworks are already portable.
127 | 128 |Finally we will port to Android
129 | 130 |In other words this will be a universal UI kit, with all code in javascript /
131 | 132 |Open source under Mozilla Public License 2.0.
159 | 160 |nodeAppKit container framework hand-coded by OwinJS; see frameworks above for respective authorship of the core components
164 |%@ in file %@ at line %@
" , e[@"description"], fileName, e[@"lineNumber"]]; 254 | [message appendFormat:@"%@" , e[@"sourceLine"]]; 255 | 256 | if ([callStack count] >0) 257 | { 258 | [message appendString:@"
"]; 277 | } 278 | 279 | if ([locals count] >0) 280 | { 281 | [message appendString:@""]; 271 | 272 | 273 | [source enumerateLinesUsingBlock:^(NSString* line, BOOL* stop) { 274 | [message appendFormat:@"
- %@
", line]; 275 | }]; 276 | [message appendString:@"
%@ | %@ |