kibi-swipl-linux-x64-gnu 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,177 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2010-2011, University of Amsterdam,
7
+ VU University Amsterdam
8
+ All rights reserved.
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions
12
+ are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright
15
+ notice, this list of conditions and the following disclaimer.
16
+
17
+ 2. Redistributions in binary form must reproduce the above copyright
18
+ notice, this list of conditions and the following disclaimer in
19
+ the documentation and/or other materials provided with the
20
+ distribution.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33
+ POSSIBILITY OF SUCH DAMAGE.
34
+ */
35
+
36
+ :- asserta(file_search_path(library, '..')).
37
+
38
+ :- use_module(library(uri)).
39
+ :- use_module(library(http/http_openid)).
40
+ :- use_module(library(http/http_host)).
41
+ :- use_module(library(http/http_dispatch)).
42
+ :- use_module(library(http/http_path)).
43
+ :- use_module(library(http/thread_httpd)).
44
+ :- use_module(library(http/html_write)).
45
+ :- use_module(library(http/http_error)).
46
+
47
+ http:location(openid, root(openid), []).
48
+
49
+ :- multifile
50
+ http_openid:openid_hook/1.
51
+
52
+ http_openid:openid_hook(trusted(_OpenID, Server)) :-
53
+ debug(openid(test), 'Trusting server ~q', [Server]).
54
+
55
+
56
+ %! server
57
+ %
58
+ % Create demo server and client. After starting the server,
59
+ % contact http://localhost:8000/
60
+
61
+ server :-
62
+ debug(openid(_)),
63
+ Port = 8000,
64
+ http_server(http_dispatch,
65
+ [ port(Port)
66
+ ]).
67
+
68
+
69
+ assoc :-
70
+ openid_associate('http://localhost:8000/openid/server', Handle, Assoc),
71
+ writeln(Handle-Assoc).
72
+
73
+ %! secret(+Request) is det.
74
+ %
75
+ % Example of a handler that requires an OpenID login. If the user
76
+ % is not logged it, it will be redirected to the login page, from
77
+ % there to the OpenID server and back here. All this is completely
78
+ % transparent to us.
79
+
80
+ :- http_handler(root('secret'), secret, []).
81
+
82
+ secret(Request) :-
83
+ openid_user(Request, User, []),
84
+ reply_html_page(title('Secret'),
85
+ [ 'You\'ve reached the secret page as user ', %'
86
+ a(href(User), User)
87
+ ]).
88
+
89
+ %! root(+Request).
90
+ %! allow(+Request).
91
+ %
92
+ % Shows an indirect login.
93
+
94
+ :- http_handler(root(.), root, []).
95
+ :- http_handler(root('test/verify'), openid_verify([return_to(allow)]), []).
96
+ :- http_handler(root('test/allow'), allow, []).
97
+
98
+ root(_Request) :-
99
+ reply_html_page(title('Demo OpenID consumer'),
100
+ [ h1('OpenID consumer'),
101
+ form([ name(login),
102
+ action('/test/verify'),
103
+ method('GET')
104
+ ],
105
+ [ div([ 'OpenID: ',
106
+ input([ name(openid_url),
107
+ size(40),
108
+ value('http://localhost:8000/user/bob') % test
109
+ ]),
110
+ input([type(submit), value('Verify!')])
111
+ ])
112
+ ]),
113
+ p([ 'Or go directly to the ', a(href=secret, 'secret page') ])
114
+ ]).
115
+
116
+
117
+ allow(Request) :-
118
+ openid_user(Request, OpenID, []),
119
+ openid_server(_OpenIDLogin, OpenID, Server),
120
+ reply_html_page(title('Success'),
121
+ [ h1('OpenID login succeeded'),
122
+ p([ 'The OpenID server ',
123
+ a(href(Server),Server),
124
+ ' verified you as ',
125
+ a(href(OpenID), OpenID)
126
+ ])
127
+ ]).
128
+
129
+
130
+ /*******************************
131
+ * OpenID SERVER *
132
+ *******************************/
133
+
134
+ :- http_handler(root('user/'), user_page, [prefix]).
135
+ :- http_handler(openid(server), openid_server([]), []).
136
+ :- http_handler(openid(grant), openid_grant, []).
137
+
138
+ :- multifile
139
+ http_openid:openid_hook/1.
140
+
141
+ http_openid:openid_hook(grant(_Request, Options)) :-
142
+ debug(openid(test), 'Granting access to ~p', [Options]).
143
+
144
+ %! user_page(+Request) is det.
145
+ %
146
+ % Generate a page for user as /user/<user>.
147
+
148
+ user_page(Request) :-
149
+ http_current_host(Request, Host, Port,
150
+ [ global(true)
151
+ ]),
152
+ http_location_by_id(openid_server, ServerLocation),
153
+ uri_authority_data(host, AComp, Host),
154
+ uri_authority_data(port, AComp, Port),
155
+ uri_authority_components(Authority, AComp),
156
+ uri_data(scheme, Components, http),
157
+ uri_data(authority, Components, Authority),
158
+ uri_data(path, Components, ServerLocation),
159
+ uri_components(OpenIDServer, Components),
160
+ memberchk(path_info(User), Request),
161
+ reply_html_page([ link([ rel('openid.server'),
162
+ href(OpenIDServer)
163
+ ]),
164
+ title('OpenID page of ~w'-[User])
165
+ ],
166
+ h1('OpenID page of ~w'-[User])).
167
+
168
+
169
+ /*******************************
170
+ * DEBUG *
171
+ *******************************/
172
+
173
+ :- http_handler(root(.), print_request, [prefix]).
174
+
175
+ print_request(Request) :-
176
+ format('Content-type: text/plain~n~n'),
177
+ pp(Request).
@@ -0,0 +1,20 @@
1
+ :- use_module(library(http/thread_httpd)).
2
+ :- use_module(library(http/http_parameters)).
3
+ :- use_module(library(http/http_dispatch)).
4
+ :- use_module(library(http/http_error)).
5
+ :- use_module(library(http/html_write)).
6
+ :- use_module(library(http/http_pwp)).
7
+
8
+ :- prolog_load_context(directory, Dir),
9
+ asserta(user:file_search_path(http_demo, Dir)).
10
+
11
+ user:file_search_path(pwp_demo, http_demo(pwp)).
12
+
13
+ :- http_handler(root(.),
14
+ pwp_handler([path_alias(pwp_demo), view(true)]),
15
+ [prefix]).
16
+
17
+ server(Port) :-
18
+ http_server(http_dispatch, [port(Port)]).
19
+
20
+
@@ -0,0 +1,56 @@
1
+ :- module(demo_http_rest,
2
+ [ server/1 % +Port
3
+ ]).
4
+ :- use_module(library(http/thread_httpd)).
5
+ :- use_module(library(http/http_dispatch)).
6
+
7
+ server(Port) :-
8
+ http_server(http_dispatch,
9
+ [ port(Port)
10
+ ]).
11
+
12
+ /** <module> Demonstrate dispatching using wildcarts
13
+
14
+ This example demonstrates dispatching events using wildcarts, normally
15
+ used for REST APIs. To run this test, start the server and use e.g.,
16
+ `curl` as:
17
+
18
+ ```
19
+ curl http://localhost:5000/user/jan
20
+ curl http://localhost:5000/user/default
21
+ curl http://localhost:5000/user/jan/parents
22
+ ```
23
+
24
+ Note that the predicate http_link_to_id/3 can generate URLs that refer
25
+ to these handlers. For example:
26
+
27
+ ?- http_link_to_id(parents('Bob'), [], URL).
28
+ URL = '/user/Bob/parents'.
29
+
30
+ The library(http/html_write) can generate also generate links to these
31
+ handlers, for example:
32
+
33
+ ...,
34
+ html(a(href(#(user('Bob'))), 'Bob'))
35
+
36
+ produces
37
+
38
+ <a href="/user/Bob">Bob</a>
39
+ */
40
+
41
+ :- http_handler(root(user/User), user(M, User), [method(M)]).
42
+ :- http_handler(root(user/default), default_user, []).
43
+ :- http_handler(root(user/User/parents), parents(User), []).
44
+
45
+ user(Method, User, _Request) :-
46
+ format('Content-type: text/plain~n~n'),
47
+ format('Run method ~p on user ~p~n', [Method, User]).
48
+
49
+ default_user(_Request) :-
50
+ format('Content-type: text/plain~n~n'),
51
+ format('Send a default user~n', []).
52
+
53
+ parents(User, _Request) :-
54
+ format('Content-type: text/plain~n~n'),
55
+ format('Asked for parents for ~p~n', [User]).
56
+
@@ -0,0 +1,52 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2002, University of Amsterdam
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions
11
+ are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright
14
+ notice, this list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright
17
+ notice, this list of conditions and the following disclaimer in
18
+ the documentation and/or other materials provided with the
19
+ distribution.
20
+
21
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
+ POSSIBILITY OF SUCH DAMAGE.
33
+ */
34
+
35
+ :- load_files([ demo_body,
36
+ library('http/thread_httpd')
37
+ ],
38
+ [ silent(true)
39
+ ]).
40
+
41
+ server :-
42
+ server(3000, []).
43
+
44
+ server(Port, Options) :-
45
+ http_server(reply,
46
+ [ port(Port),
47
+ timeout(20)
48
+ | Options
49
+ ]).
50
+
51
+ tm :-
52
+ prolog_ide(thread_monitor).
@@ -0,0 +1,126 @@
1
+ #!/bin/sh
2
+ ### BEGIN INIT INFO
3
+ # Provides: swi-httpd
4
+ # Required-Start: $local_fs $remote_fs $network $syslog $named
5
+ # Required-Stop: $local_fs $remote_fs $network $syslog $named
6
+ # Default-Start: 2 3 4 5
7
+ # Default-Stop: 0 1 6
8
+ # X-Interactive: true
9
+ # Short-Description: Start/stop SWI-Prolog web server
10
+ ### END INIT INFO
11
+
12
+ # Installation
13
+ #
14
+ # 0. On Redhat/CentOS: yum install redhat-lsb
15
+ # 1. Copy this file to /etc/init.d/<server>
16
+ # 2. Edit the Configuration section below
17
+ # 3. Run
18
+ # % update-rc.d <server> defaults
19
+ # % /etc/init.d/<server> start
20
+
21
+ # Configuration section
22
+ #
23
+ SWIPL=/usr/bin/swipl
24
+ DIR=/srv/swipl-httpd
25
+ SCRIPT=daemon.pl
26
+ USER=www-data
27
+ PORT=80
28
+ DAEMONARGS=
29
+
30
+ # Uncomment to only listen for connections from localhost
31
+ # DAEMONARGS="$DAEMONARGS --ip=localhost"
32
+
33
+ HTTPID=swipl-httpd-$PORT
34
+ PIDFILE=/var/run/$HTTPID.pid
35
+ SYSLOG=$HTTPID
36
+
37
+ # End of normal configuration
38
+
39
+ . /lib/lsb/init-functions
40
+ test -f /etc/default/rcS && . /etc/default/rcS
41
+
42
+ DAEMONARGS="$DAEMONARGS --port=$PORT --user=$USER --fork"
43
+ if [ ! -z "$SYSLOG" ]; then DAEMONARGS="$DAEMONARGS --syslog=$SYSLOG"; fi
44
+ if [ ! -z "$PIDFILE" ]; then DAEMONARGS="$DAEMONARGS --pidfile=$PIDFILE"; fi
45
+
46
+ pidofserver()
47
+ { if [ -f "$PIDFILE" ]; then
48
+ cat "$PIDFILE"
49
+ else
50
+ ps aux | grep "[0-9] *$SWIPL.*--port=$PORT" 2>/dev/null | awk '{print $2}'
51
+ fi
52
+ }
53
+
54
+ running()
55
+ { if [ -z "$1" ]; then return 1; fi
56
+
57
+ if kill -0 $1 2> /dev/null; then
58
+ return 0
59
+ else
60
+ return 1
61
+ fi
62
+ }
63
+
64
+ waitserver()
65
+ { i=0;
66
+
67
+ while running $1; do
68
+ if [ $i = '60' ]; then
69
+ return 1;
70
+ else
71
+ if [ $i = '0' ]; then
72
+ echo -n " ... waiting "
73
+ else
74
+ echo -n "."
75
+ fi
76
+ i=$(($i+1))
77
+ sleep 1
78
+ fi
79
+ done
80
+ }
81
+
82
+ case $1 in
83
+ start)
84
+ MESSAGE="Starting web server $HTTPID"
85
+ if (cd $DIR && $SWIPL -q -s $SCRIPT -- $DAEMONARGS); then
86
+ log_success_msg $MESSAGE
87
+ else
88
+ log_failure_msg $MESSAGE
89
+ fi
90
+ ;;
91
+ stop)
92
+ MESSAGE="Stopping web server $HTTPID"
93
+ PID=$(pidofserver)
94
+ kill $PID
95
+ if waitserver $PID; then
96
+ log_success_msg $MESSAGE
97
+ else
98
+ kill -9 $PID
99
+ if waitserver $PID; then
100
+ log_success_msg $MESSAGE
101
+ else
102
+ log_failure_msg $MESSAGE
103
+ fi
104
+ fi
105
+ ;;
106
+ restart)
107
+ $0 stop && $0 start
108
+ ;;
109
+ status)
110
+ PID=$(pidofserver)
111
+ if running "$PID"; then
112
+ echo "SWI-Prolog HTTP server is running (pid $PID)."
113
+ exit 0
114
+ else
115
+ echo "SWI-Prolog HTTP server is NOT running."
116
+ if [ -e $PIDFILE ]; then
117
+ exit 1
118
+ else
119
+ exit 3
120
+ fi
121
+ fi
122
+ ;;
123
+ *)
124
+ log_success_msg "Usage: /etc/init.d/swipl-httpd {start|stop|restart|status}"
125
+ exit 1
126
+ esac
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE html>
3
+
4
+ <html xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl">
5
+
6
+ <head>
7
+ <title>Context variables for PWP scripts</title>
8
+ </head>
9
+ <body>
10
+ <p>This PWP demo lists the context-parameters that are passed into
11
+ the script.
12
+ </p>
13
+ <ul>
14
+ <li pwp:ask="member(Name=Value, CONTEXT)">
15
+ <span class=name pwp:use="Name"/>
16
+ =
17
+ <span class=value pwp:use="writeq(Value)"/>
18
+ </li>
19
+ </ul>
20
+ </body>
21
+
22
+ </html>
23
+
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE html>
3
+
4
+ <html xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl">
5
+
6
+ <head>
7
+ <title>Index for PWP demos</title>
8
+ </head>
9
+ <body pwp:ask="atom_concat(SCRIPT_DIRECTORY, /, Prefix),
10
+ atom_concat(Prefix, '*.pwp', Pattern),
11
+ expand_file_name(Pattern, Paths),
12
+ maplist(atom_concat(Prefix), Files, Paths)">
13
+
14
+ <h1>PWP scripts in this directory</h1>
15
+
16
+ <ul>
17
+ <li pwp:ask="member(F, Files), F \== 'index.pwp'">
18
+ <a pwp:use="F" pwp:att="$" href="$(F)$"/>
19
+ <a pwp:att="$" href="$(F)$?view=source">source</a>
20
+ </li>
21
+ </ul>
22
+ </body>
23
+
24
+ </html>
25
+
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <html
4
+ xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl"
5
+ pwp:ask = "ensure_loaded(pwp(pwpdb)), once(msg(Greeting))">
6
+ <head>
7
+ <title pwp:use="Greeting"/>
8
+ </head>
9
+ <body>
10
+ <p><span pwp:use="Greeting" pwp:tag='-'/></p>
11
+ </body>
12
+ </html>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <html
4
+ xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl">
5
+ <head><title>Example 2</title></head>
6
+ <body pwp:ask="Hello = 'Hello world', A = 20, B = 22">
7
+ <h1 pwp:use="Hello"/>
8
+ <p>The answer is <span pwp:tag='-' pwp:use="C" pwp:ask="C is A+B"/>.</p>
9
+ </body>
10
+ </html>
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <html
4
+ xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl"
5
+ pwp:ask='ensure_loaded(pwp(pwpdb))'>
6
+ <head>
7
+ <title>Phone list for Full-Time staff.</title>
8
+ </head>
9
+ <body>
10
+ <h1>Phone list for Full-Time staff.</h1>
11
+ <table
12
+ pwp:ask = "setof(FullName-Phone,
13
+ N^O^E^(
14
+ status(N, full_time),
15
+ staff(N, FullName, O, Phone, E)
16
+ ),
17
+ Staff_List)">
18
+ <tr><th>Name</th><th>Phone</th></tr>
19
+ <tr pwp:ask="member(FullName-Phone, Staff_List)">
20
+ <td pwp:use="FullName"/>
21
+ <td pwp:use="Phone"/>
22
+ </tr>
23
+ </table>
24
+ </body>
25
+ </html>
@@ -0,0 +1,23 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <html
4
+ xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl"
5
+ pwp:ask='ensure_loaded(pwp(pwpdb))'>
6
+ <head>
7
+ <title>Phone list for Full-Time staff.</title>
8
+ </head>
9
+ <body>
10
+ <h1>Phone list for Full-Time staff.</h1>
11
+ <table
12
+ pwp:ask = "setof(FullName-E_Mail,
13
+ N^O^P^staff(N, FullName, O, P, E_Mail),
14
+ Staff_List)">
15
+ <tr><th>Name</th><th>Address</th></tr>
16
+ <tr pwp:ask="member(FullName-E_Mail, Staff_List)">
17
+ <td pwp:use="FullName"/>
18
+ <td><a pwp:use="E_Mail"
19
+ pwp:att='$' href="mailto:$(E_Mail)$"/></td>
20
+ </tr>
21
+ </table>
22
+ </body>
23
+ </html>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <html
4
+ xmlns:pwp="http://www.cs.otago.ac.nz/staffpriv/ok/pwp.pl">
5
+ <head><title>$SHELL</title></head>
6
+ <body>
7
+ <p pwp:ask="getenv('SHELL', Shell)"
8
+ >The default shell is <span pwp:tag="-" pwp:use="Shell"/>.</p>
9
+ <p pwp:ask="\+getenv('SHELL',_)">There is no default shell.</p>
10
+ </body>
11
+ </html>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <a>b</a>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <a><b pwp:use='27' pwp:tag='-'/></a>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0"?>
2
+
3
+ <a pwp:ask="B=20,C=22"><b pwp:use="B"/><c pwp:use="C"/></a>
@@ -0,0 +1,12 @@
1
+ % This is a tiny data base for testing PWP.
2
+
3
+ msg('Hello, World!').
4
+
5
+ status(tom, full_time).
6
+ status(dick, part_time).
7
+ status(harry, full_time).
8
+
9
+ staff(tom, 'Tom Cat', 1-21, 'x1234', 'tom@jerry.example.org').
10
+ staff(dick, 'Dick Tater', 2-50, 'x9999', 'boss@hq.example.org').
11
+ staff(harry, 'Harry Ett', 3-14, 'x7654', 'h.ett@kit.example.org').
12
+
@@ -0,0 +1,18 @@
1
+ # demo - SWI-Prolog demo server
2
+ #
3
+ # The SWI-Prolog demo server
4
+
5
+ [Unit]
6
+ Description=SWI-Prolog demo server
7
+
8
+ [Service]
9
+ UMask=022
10
+ Environment=LANG=en_US.utf8
11
+ Restart=on-failure
12
+ StartLimitInterval=60
13
+ StartLimitBurst=5
14
+ WorkingDirectory=/home/swipl/src/demo
15
+ ExecStart=/usr/bin/swipl daemon.pl --no-fork --port=80 --user=www-data
16
+
17
+ [Install]
18
+ WantedBy=multi-user.target
@@ -0,0 +1,20 @@
1
+ # demo - SWI-Prolog demo server
2
+ #
3
+ # The SWI-Prolog demo server
4
+
5
+ description "SWI-Prolog demo server"
6
+
7
+ start on runlevel [2345]
8
+ stop on runlevel [!2345]
9
+
10
+ respawn
11
+ respawn limit 5 60
12
+ umask 022
13
+
14
+ console log
15
+ chdir /home/swipl/src/demo
16
+
17
+ script
18
+ export LANG=en_US.utf8
19
+ /usr/bin/swipl daemon.pl --no-fork --port=80 --user=www-data --pidfile=/var/run/demo.pid --workers=16 --syslog=demo
20
+ end script
@@ -0,0 +1,17 @@
1
+ :- use_module(plunit).
2
+
3
+ :- begin_tests(read).
4
+
5
+ create_file(Tmp) :-
6
+ tmp_file(plunit, Tmp),
7
+ open(Tmp, write, Out),
8
+ write(Out, 'hello(World).\n'),
9
+ close(Out).
10
+
11
+ test(read, [ setup(create_file(Tmp)),
12
+ cleanup(delete_file(Tmp))
13
+ ]) :-
14
+ read_file_to_terms(Tmp, Terms, []),
15
+ Terms =@= [hello(_)].
16
+
17
+ :- end_tests(read).