gina 0.1.1-alpha.22 → 0.1.1-alpha.221

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 (369) hide show
  1. package/AUTHORS +2 -1
  2. package/LICENSE +1 -1
  3. package/README-4Contributors.md +30 -0
  4. package/README.md +210 -32
  5. package/bin/cli +166 -68
  6. package/bin/cli-debug +49 -18
  7. package/bin/cmd +40 -18
  8. package/bin/gina +48 -37
  9. package/framework/{v0.1.1-alpha.22/lib/inherits → v0.1.1-alpha.221}/LICENSE +1 -1
  10. package/framework/v0.1.1-alpha.221/VERSION +1 -0
  11. package/framework/{v0.1.1-alpha.22/core/asset/js/plugin/readme.md → v0.1.1-alpha.221/core/asset/plugin/README.md} +31 -9
  12. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  13. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  14. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/html/toolbar.html +251 -0
  15. package/framework/{v0.1.1-alpha.22/core/asset/js/plugin/dist → v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/js}/gina.js +4364 -3175
  16. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/js/gina.min.js +764 -0
  17. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  18. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +5 -0
  19. package/framework/v0.1.1-alpha.221/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  20. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/config.js +172 -79
  21. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/index.js +373 -259
  22. package/framework/v0.1.1-alpha.221/core/connectors/couchbase/lib/connector.js +22 -0
  23. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/lib/connector.v2.js +51 -51
  24. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/lib/connector.v3.js +51 -51
  25. package/framework/v0.1.1-alpha.221/core/connectors/couchbase/lib/connector.v4.js +384 -0
  26. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/lib/n1ql.js +3 -2
  27. package/framework/v0.1.1-alpha.221/core/connectors/couchbase/lib/session-store.js +22 -0
  28. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/lib/session-store.v3.js +12 -12
  29. package/framework/v0.1.1-alpha.221/core/connectors/couchbase/lib/session-store.v4.js +361 -0
  30. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/controller/controller.js +921 -773
  31. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/dev/index.js +1 -1
  32. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/dev/lib/class.js +1 -1
  33. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/dev/lib/factory.js +2 -2
  34. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/gna.js +13 -9
  35. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/README.md +5 -0
  36. package/framework/v0.1.1-alpha.221/core/locales/dist/region/en.json +5727 -0
  37. package/framework/v0.1.1-alpha.221/core/locales/dist/region/fr.json +11452 -0
  38. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/index.js +2 -2
  39. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/src/make.js +39 -41
  40. package/framework/v0.1.1-alpha.221/core/locales/src/resources/region.mapping.json +43 -0
  41. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/model/entity.js +87 -67
  42. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/model/index.js +16 -16
  43. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/model/template/entityFactory.js +1 -1
  44. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/model/template/index.js +17 -15
  45. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/index.js +1 -1
  46. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/file/package.json +1 -1
  47. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/intl/package.json +1 -1
  48. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/intl/src/main.js +5 -5
  49. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/storage/package.json +1 -1
  50. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/storage/src/main.js +6 -5
  51. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/validator/package.json +1 -1
  52. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/validator/src/form-validator.js +403 -300
  53. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/validator/src/main.js +1368 -1314
  54. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/router.js +99 -90
  55. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/server.isaac.js +203 -180
  56. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/server.js +439 -238
  57. package/framework/v0.1.1-alpha.221/core/template/boilerplate/bundle/config/settings.json +12 -0
  58. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/config/settings.server.json +4 -4
  59. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/config/templates.json +4 -4
  60. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/controllers/controller.content.js +1 -1
  61. package/framework/v0.1.1-alpha.221/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  62. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/index.js +13 -1
  63. package/framework/v0.1.1-alpha.221/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
  64. package/framework/v0.1.1-alpha.221/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
  65. package/framework/v0.1.1-alpha.221/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
  66. package/framework/{v0.1.1-alpha.22/core/template/boilerplate/bundle_templates/html/layout → v0.1.1-alpha.221/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
  67. package/framework/v0.1.1-alpha.221/core/template/command/gina.bat.tpl +8 -0
  68. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/command/gina.tpl +4 -4
  69. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/conf/env.json +11 -0
  70. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/conf/package.json +1 -1
  71. package/framework/v0.1.1-alpha.221/core/template/conf/statics.json +12 -0
  72. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/conf/templates.json +2 -2
  73. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/console.js +3 -3
  74. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/context.js +148 -7
  75. package/framework/v0.1.1-alpha.221/helpers/data/LICENSE +9 -0
  76. package/framework/v0.1.1-alpha.221/helpers/data/README.md +12 -0
  77. package/framework/v0.1.1-alpha.221/helpers/data/package.json +20 -0
  78. package/framework/v0.1.1-alpha.221/helpers/data/src/main.js +295 -0
  79. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/dateFormat.js +9 -7
  80. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/index.js +13 -8
  81. package/framework/v0.1.1-alpha.221/helpers/json/LICENSE +9 -0
  82. package/framework/v0.1.1-alpha.221/helpers/json/README.md +12 -0
  83. package/framework/{v0.1.1-alpha.22/helpers/plugins → v0.1.1-alpha.221/helpers/json}/package.json +2 -2
  84. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/json/src/main.js +28 -26
  85. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/path.js +176 -96
  86. package/framework/{v0.1.1-alpha.22/helpers/json → v0.1.1-alpha.221/helpers/plugins}/package.json +2 -2
  87. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/plugins/src/api-error.js +23 -23
  88. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/plugins/src/main.js +3 -3
  89. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/prototypes.js +46 -38
  90. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/task.js +21 -14
  91. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/text.js +2 -2
  92. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/archiver/package.json +1 -1
  93. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/archiver/src/dep/jszip.min.js +3 -3
  94. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/archiver/src/main.js +168 -168
  95. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/aliases.json +4 -1
  96. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/add.js +84 -27
  97. package/framework/v0.1.1-alpha.221/lib/cmd/bundle/arguments.json +7 -0
  98. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/help.txt +4 -2
  99. package/framework/v0.1.1-alpha.221/lib/cmd/bundle/list.js +176 -0
  100. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/remove.js +36 -27
  101. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/start.js +264 -46
  102. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/stop.js +93 -74
  103. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/add.js +44 -43
  104. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/list.js +23 -4
  105. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/remove.js +19 -19
  106. package/framework/{v0.1.1-alpha.22/lib/cmd/scope → v0.1.1-alpha.221/lib/cmd/env}/use.js +21 -1
  107. package/framework/v0.1.1-alpha.221/lib/cmd/framework/build.js +88 -0
  108. package/framework/v0.1.1-alpha.221/lib/cmd/framework/init.js +798 -0
  109. package/framework/v0.1.1-alpha.221/lib/cmd/framework/link-node-modules.js +116 -0
  110. package/framework/v0.1.1-alpha.221/lib/cmd/framework/link.js +114 -0
  111. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/open.js +22 -1
  112. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/restart.js +61 -26
  113. package/framework/v0.1.1-alpha.221/lib/cmd/framework/set.js +293 -0
  114. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/start.js +46 -20
  115. package/framework/v0.1.1-alpha.221/lib/cmd/framework/status.js +141 -0
  116. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/stop.js +47 -28
  117. package/framework/v0.1.1-alpha.221/lib/cmd/framework/tail.js +302 -0
  118. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/version.js +15 -3
  119. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/helper.js +131 -18
  120. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/index.js +23 -23
  121. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/port/inc/scan.js +32 -16
  122. package/framework/v0.1.1-alpha.221/lib/cmd/port/list.js +462 -0
  123. package/framework/v0.1.1-alpha.221/lib/cmd/port/reset.js +429 -0
  124. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/add.js +147 -122
  125. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/arguments.json +2 -1
  126. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/build.js +28 -28
  127. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/list.js +19 -2
  128. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/remove.js +19 -17
  129. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/rename.js +11 -11
  130. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/protocol/set.js +256 -209
  131. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/list.js +27 -8
  132. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/remove.js +19 -19
  133. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/view/add.js +35 -10
  134. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/collection/package.json +1 -1
  135. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/collection/src/main.js +243 -242
  136. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/config.js +31 -30
  137. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cron/package.json +1 -1
  138. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cron/src/main.js +10 -9
  139. package/framework/v0.1.1-alpha.221/lib/domain/LICENSE +9 -0
  140. package/framework/v0.1.1-alpha.221/lib/domain/README.md +46 -0
  141. package/framework/v0.1.1-alpha.221/lib/domain/dist/public_suffix_list.dat +14186 -0
  142. package/framework/v0.1.1-alpha.221/lib/domain/package.json +20 -0
  143. package/framework/v0.1.1-alpha.221/lib/domain/src/main.js +442 -0
  144. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/generator/index.js +5 -5
  145. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/index.js +3 -2
  146. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221/lib/inherits}/LICENSE +1 -1
  147. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/README.md +2 -2
  148. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/package.json +3 -4
  149. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/src/main.js +3 -3
  150. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/package.json +2 -2
  151. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/default/index.js +13 -2
  152. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/file/index.js +109 -14
  153. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/mq/index.js +12 -3
  154. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/mq/listener.js +16 -14
  155. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/mq/speaker.js +32 -3
  156. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/helper.js +21 -1
  157. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/main.js +36 -9
  158. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/math/index.js +9 -9
  159. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/README.md +2 -2
  160. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/package.json +1 -1
  161. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/src/main.js +118 -91
  162. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/model.js +10 -10
  163. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/proc.js +87 -49
  164. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/routing/package.json +1 -1
  165. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/routing/src/main.js +313 -285
  166. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/session-store.js +6 -6
  167. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/shell.js +3 -3
  168. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/swig-filters/package.json +1 -1
  169. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/swig-filters/src/main.js +140 -119
  170. package/framework/v0.1.1-alpha.221/lib/url/README.md +0 -0
  171. package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/validator.js +2 -2
  172. package/framework/v0.1.1-alpha.221/package.json +14 -0
  173. package/package.json +37 -25
  174. package/resources/home/main.json +53 -4
  175. package/resources/home/settings.json +9 -0
  176. package/resources/home/user/extensions/logger/default/config.json +1 -1
  177. package/resources/package.json.template +29 -18
  178. package/script/lib.js +0 -0
  179. package/script/post_install.js +479 -141
  180. package/script/pre_install.js +508 -77
  181. package/services/.gna/67fdf1b224a2ed5597e63d4b64283834468e05e3.txt +0 -0
  182. package/services/.gna/arch +1 -0
  183. package/services/.gna/locals.json +14 -0
  184. package/services/.gna/platform +1 -0
  185. package/services/configure +6 -0
  186. package/services/env.json +18 -0
  187. package/services/manifest.json +30 -0
  188. package/services/package.json +11 -0
  189. package/services/src/proxy/config/app.json +6 -0
  190. package/services/src/proxy/config/routing.json +11 -0
  191. package/services/src/proxy/config/settings.json +9 -0
  192. package/services/src/proxy/config/settings.server.json +31 -0
  193. package/services/src/proxy/config/statics.json +3 -0
  194. package/services/src/proxy/controllers/controller.content.js +58 -0
  195. package/services/src/proxy/controllers/controller.js +30 -0
  196. package/{framework/v0.1.1-alpha.22/core/template/boilerplate/bundle → services/src/proxy}/controllers/setup.js +14 -14
  197. package/services/src/proxy/index.js +31 -0
  198. package/services/src/proxy/lib/domain/README.md +48 -0
  199. package/services/src/proxy/lib/domain/src/config/public_suffix_list.dat +14186 -0
  200. package/services/src/toolbar/config/app.json +6 -0
  201. package/services/src/toolbar/config/routing.json +11 -0
  202. package/{framework/v0.1.1-alpha.22/core/template/boilerplate/bundle → services/src/toolbar}/config/settings.json +0 -0
  203. package/services/src/toolbar/config/settings.server.json +30 -0
  204. package/services/src/toolbar/controllers/controller.content.js +39 -0
  205. package/services/src/toolbar/controllers/controller.js +30 -0
  206. package/services/src/toolbar/controllers/setup.js +111 -0
  207. package/services/src/toolbar/index.js +43 -0
  208. package/utils/helper.js +236 -185
  209. package/utils/prototypes.js +9 -9
  210. package/utils/prototypes.json_clone.js +70 -37
  211. package/doc/framework/cli/doc.json +0 -9
  212. package/doc/framework/index.md +0 -60
  213. package/framework/v0.1.1-alpha.22/VERSION +0 -1
  214. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.js.map +0 -56
  215. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.min.css +0 -1
  216. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.min.css.map +0 -1
  217. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.min.js +0 -736
  218. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.min.js.map +0 -56
  219. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.onload.min.js +0 -5
  220. package/framework/v0.1.1-alpha.22/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -8
  221. package/framework/v0.1.1-alpha.22/core/connectors/couchbase/lib/connector.js +0 -20
  222. package/framework/v0.1.1-alpha.22/core/connectors/couchbase/lib/session-store.js +0 -21
  223. package/framework/v0.1.1-alpha.22/core/locales/dist/region/en.json +0 -9492
  224. package/framework/v0.1.1-alpha.22/core/locales/dist/region/fr.json +0 -9492
  225. package/framework/v0.1.1-alpha.22/core/locales/src/resources/region.mapping.json +0 -28
  226. package/framework/v0.1.1-alpha.22/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
  227. package/framework/v0.1.1-alpha.22/core/template/conf/statics.json +0 -10
  228. package/framework/v0.1.1-alpha.22/lib/cmd/bundle/arguments.json +0 -4
  229. package/framework/v0.1.1-alpha.22/lib/cmd/bundle/list.js +0 -129
  230. package/framework/v0.1.1-alpha.22/lib/cmd/framework/init.js +0 -514
  231. package/framework/v0.1.1-alpha.22/lib/cmd/framework/set.js +0 -161
  232. package/framework/v0.1.1-alpha.22/lib/cmd/framework/status.js +0 -72
  233. package/framework/v0.1.1-alpha.22/lib/cmd/framework/tail.js +0 -183
  234. package/framework/v0.1.1-alpha.22/lib/cmd/port/list.js +0 -176
  235. package/framework/v0.1.1-alpha.22/package.json +0 -14
  236. package/script/prepare_version.js +0 -429
  237. /package/{framework/v0.1.1-alpha.22/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
  238. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/AUTHORS +0 -0
  239. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/html/nolayout.html +0 -0
  240. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/html/static.html +0 -0
  241. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/android-chrome-192x192.png +0 -0
  242. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/android-chrome-512x512.png +0 -0
  243. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/apple-touch-icon.png +0 -0
  244. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/favicon-16x16.png +0 -0
  245. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/favicon-32x32.png +0 -0
  246. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/asset/img/favicon.ico +0 -0
  247. /package/framework/{v0.1.1-alpha.22/core/asset/js → v0.1.1-alpha.221/core/asset}/plugin/uuid.json +0 -0
  248. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  249. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/controller/controller.framework.js +0 -0
  250. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/controller/index.js +0 -0
  251. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/.travis.yml +0 -0
  252. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/LICENSE +0 -0
  253. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/README.md +0 -0
  254. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
  255. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/deps/encoding/encoding.js +0 -0
  256. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/lib/main.js +0 -0
  257. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/lib/types/multipart.js +0 -0
  258. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/lib/types/urlencoded.js +0 -0
  259. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/lib/utils.js +0 -0
  260. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/busboy/package.json +0 -0
  261. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  262. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/dev/lib/tools.js +0 -0
  263. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/currency.json +0 -0
  264. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/dist/language/en.json +0 -0
  265. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/dist/language/fr.json +0 -0
  266. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/src/resources/currency.csv +0 -0
  267. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/locales/src/resources/region.csv +0 -0
  268. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/mime.types +0 -0
  269. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/README.md +0 -0
  270. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/file/README.md +0 -0
  271. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/file/build.json +0 -0
  272. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/intl/README.md +0 -0
  273. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/intl/build.json +0 -0
  274. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/storage/README.md +0 -0
  275. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/storage/build.json +0 -0
  276. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/validator/README.md +0 -0
  277. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/plugins/lib/validator/build.json +0 -0
  278. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/server.express.js +0 -0
  279. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/status.codes +0 -0
  280. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/config/app.json +0 -0
  281. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/config/routing.json +0 -0
  282. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  283. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  284. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  285. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  286. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  287. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  288. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_public/readme.md +0 -0
  289. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  290. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/conf/manifest.json +0 -0
  291. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/conf/settings.json +0 -0
  292. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/client/json/401.json +0 -0
  293. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/client/json/403.json +0 -0
  294. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/client/json/404.json +0 -0
  295. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/server/html/50x.html +0 -0
  296. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/server/json/500.json +0 -0
  297. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/error/server/json/503.json +0 -0
  298. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/core/template/extensions/logger/config.json +0 -0
  299. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/helpers/plugins/README.md +0 -0
  300. /package/framework/{v0.1.1-alpha.22/helpers/json → v0.1.1-alpha.221/lib/archiver}/README.md +0 -0
  301. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/archiver/build.json +0 -0
  302. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/copy.js +0 -0
  303. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/cp.js +0 -0
  304. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/help.js +0 -0
  305. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/rename.js +0 -0
  306. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/restart.js +0 -0
  307. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/rm.js +0 -0
  308. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/bundle/status.js +0 -0
  309. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/get.js +0 -0
  310. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/help.js +0 -0
  311. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/help.txt +0 -0
  312. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/link-dev.js +0 -0
  313. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/rm.js +0 -0
  314. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/set.js +0 -0
  315. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/env/unset.js +0 -0
  316. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/dot.js +0 -0
  317. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/get.js +0 -0
  318. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/help.js +0 -0
  319. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/help.txt +0 -0
  320. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/msg.json +0 -0
  321. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/framework/update.js +0 -0
  322. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/gina-dev.1.md +0 -0
  323. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/gina-framework.1.md +0 -0
  324. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/gina.1.md +0 -0
  325. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/msg.json +0 -0
  326. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/port/help.js +0 -0
  327. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/port/help.txt +0 -0
  328. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/port/set.js +0 -0
  329. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/help.js +0 -0
  330. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/help.txt +0 -0
  331. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/import.js +0 -0
  332. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/move.js +0 -0
  333. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/restart.js +0 -0
  334. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/rm.js +0 -0
  335. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/start.js +0 -0
  336. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/status.js +0 -0
  337. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/project/stop.js +0 -0
  338. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/protocol/help.js +0 -0
  339. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/protocol/help.txt +0 -0
  340. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/protocol/list.js +0 -0
  341. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/help.js +0 -0
  342. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/help.txt +0 -0
  343. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/link-local.js +0 -0
  344. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/rm.js +0 -0
  345. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/set.js +0 -0
  346. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cmd/scope/unset.js +0 -0
  347. /package/framework/{v0.1.1-alpha.22/lib/cmd/env → v0.1.1-alpha.221/lib/cmd/scope}/use.js +0 -0
  348. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/collection/README.md +0 -0
  349. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/collection/build.json +0 -0
  350. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/cron/README.md +0 -0
  351. /package/framework/{v0.1.1-alpha.22/lib/archiver/README.md → v0.1.1-alpha.221/lib/domain/exemples/backend.js} +0 -0
  352. /package/framework/{v0.1.1-alpha.22/lib/routing/README.md → v0.1.1-alpha.221/lib/domain/exemples/frontend.html} +0 -0
  353. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  354. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/example/protected_inheritance.js +0 -0
  355. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/example/simple_inheritance.js +0 -0
  356. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  357. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/README.md +0 -0
  358. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  359. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  360. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/example/merge.js +0 -0
  361. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/example/merge_2_literal objects.js +0 -0
  362. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/merge/example/merge_and_preserve_first.js +0 -0
  363. /package/framework/{v0.1.1-alpha.22/lib/swig-filters → v0.1.1-alpha.221/lib/routing}/README.md +0 -0
  364. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/routing/build.json +0 -0
  365. /package/framework/{v0.1.1-alpha.22/lib/url → v0.1.1-alpha.221/lib/swig-filters}/README.md +0 -0
  366. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/url/index.js +0 -0
  367. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/url/mocks.json +0 -0
  368. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/url/routing.json +0 -0
  369. /package/framework/{v0.1.1-alpha.22 → v0.1.1-alpha.221}/lib/url/test.js +0 -0
@@ -1,6 +1,7 @@
1
1
  //"use strict";
2
2
  // Imports.
3
3
  var fs = require('fs');
4
+ const { version } = require('os');
4
5
  //var util = require('util');
5
6
  //var promisify = require('util').promisify;
6
7
  // Use couchbase module from the user's project dependencies if not found
@@ -15,14 +16,14 @@ var console = lib.logger;
15
16
  /**
16
17
  * Couchbase Class
17
18
  *
18
- * @package Freelancer.CoreAPI
19
+ * @package Connectors.Couchbase
19
20
  * @author Rhinostone
20
21
  */
21
22
 
22
23
  function Couchbase(conn, infos) {
23
24
  var EntitySuperClass = null, EntityN1qlClass = null;
24
25
  var envIsDev = ( /^true$/i.test(process.env.NODE_ENV_IS_DEV) ) ? true : false;
25
-
26
+
26
27
  /**
27
28
  * Init
28
29
  * @constructor
@@ -101,33 +102,36 @@ function Couchbase(conn, infos) {
101
102
  if ( /^\./.test(files[f]) ) {
102
103
  continue;
103
104
  }
104
-
105
+
105
106
  filename = _(dir +'/'+ files[f]);
106
107
  loadN1QL(entities, filename)
107
108
  }
108
109
  }
109
-
110
+
110
111
  return entities
111
112
  };
112
113
 
113
114
  var loadN1QL = function(entities, filename) {
115
+ var arr = null
116
+ , entityName = null
117
+ ;
114
118
 
115
119
  if ( fs.statSync(filename).isDirectory() ) {
116
120
  var files = fs.readdirSync(filename)
117
121
  , f = 0
118
- , arr = filename.split(/\//g)
119
- , entityName = arr[arr.length-1];
120
-
121
- entityName = entityName.charAt(0).toUpperCase() + entityName.slice(1);
122
+ ;
123
+ arr = filename.split(/\//g);
124
+ entityName = arr[arr.length-1];
125
+ entityName = entityName.charAt(0).toUpperCase() + entityName.slice(1);
122
126
 
123
127
  for (; f < files.length; ++f) {
124
128
  // ignoring filename starting with . & sub folders
125
- if (
129
+ if (
126
130
  /^\./.test(files[f])
127
131
  ||
128
- !/\.sql$/i.test(files[f])
132
+ !/\.sql$/i.test(files[f])
129
133
  ||
130
- fs.statSync( _(filename + '/' + files[f], true) ).isDirectory()
134
+ fs.statSync( _(filename + '/' + files[f], true) ).isDirectory()
131
135
  ) {
132
136
  continue;
133
137
  }
@@ -135,11 +139,10 @@ function Couchbase(conn, infos) {
135
139
  }
136
140
 
137
141
  } else {
138
- var arr = filename.split(/\//g)
139
- , entityName = arr[arr.length-1].replace(/\.sql/, '').split(/\_/)[0];
142
+ arr = filename.split(/\//g);
143
+ entityName = arr[arr.length-1].replace(/\.sql/, '').split(/\_/)[0];
144
+ entityName = entityName.charAt(0).toUpperCase() + entityName.slice(1);
140
145
 
141
- entityName = entityName.charAt(0).toUpperCase() + entityName.slice(1);
142
- nbbnnb
143
146
  readSource(entities, entityName, filename)
144
147
  }
145
148
  }
@@ -166,28 +169,28 @@ function Couchbase(conn, infos) {
166
169
  if ( includes && includes.length > 0 ) {
167
170
  for (let i = 0, len = includes.length; i < len; i++) {
168
171
  let filename = includes[i].replace(/\"|\'|\;|(\@include\s+|\@include)/g, '');
169
- if (
172
+ if (
170
173
  /^\./.test(filename)
171
174
  ||
172
175
  // windows style location
173
- /^[a-z]:(\\|\/\/)/i.test(filename)
176
+ /^[a-z]:(\\|\/\/)/i.test(filename)
174
177
  ||
175
178
  // not unix absolut
176
179
  !/^\//.test(filename)
177
180
  && !/^[a-z]:(\\|\/\/)/i.test(filename)
178
-
181
+
179
182
  ) {
180
183
  let dir = new _(source).toUnixStyle();
181
184
  dir = dir.substr(0, dir.lastIndexOf('/')) + '/'
182
185
  filename = _(dir + filename.replace(/^\.\//, ''), true);
183
186
  }
184
- // remove @include calls
187
+ // remove @include calls
185
188
  //console.debug('including .....'+ filename);
186
189
  queryString = queryString.replace(includes[i], fs.readFileSync( filename ).toString() );
187
190
  }
188
191
  }
189
192
  queryString = queryString.replace(/\n/g, ' ');
190
-
193
+
191
194
  // extract comments
192
195
  comments = queryString.match(/(\/\*([^*]|[\r\n]|(\*+([^*\/]|[\r\n])))*\*+\/)|(\/\/.*)/g);
193
196
  // extract return type
@@ -200,9 +203,9 @@ function Couchbase(conn, infos) {
200
203
  params = comments[0].match(/\$\w+/g); // param list from comments
201
204
  queryString = queryString.replace(comments[0], '');
202
205
  }
203
-
206
+
204
207
  inlineParams = queryString.match(/\$\w+/g);
205
-
208
+
206
209
  // getting rid of duplicated
207
210
  if ( typeof(Set) == 'function' ) { // ES6
208
211
  inlineParams = Array.from(new Set(inlineParams))
@@ -222,8 +225,8 @@ function Couchbase(conn, infos) {
222
225
  entities[entityName].prototype._collection = entityName;
223
226
  entities[entityName].prototype._filename = _( __dirname + '/lib/n1ql.js', true );
224
227
  }
225
-
226
-
228
+
229
+
227
230
  entities[entityName].prototype[name] = function() {
228
231
  var self = this;
229
232
  var key = null
@@ -234,15 +237,15 @@ function Couchbase(conn, infos) {
234
237
  , _mainCallback = null;
235
238
 
236
239
  if ( params && params.length != args.length && !/function/.test(typeof(args[args.length-1])) ) {
237
- throw new Error('[ N1QL:' + entityName+'#'+name+'() ] arguments must match parameters length. Please refer to [ '+ source +' ]\nFound in param list: ('+ params.join(', ') +') !')
240
+ throw new Error('[N1QL][ ' + entityName+'#'+name+'() ] arguments must match parameters length. Please refer to [ '+ source +' ]\nFound in param list: ('+ params.join(', ') +') !')
238
241
  } else if ( /function/.test( typeof(args[args.length-1]) ) ) {
239
242
  // to hande Nodejs Util.promisify
240
243
  _mainCallback = args[args.length-1]
241
244
  }
242
245
 
243
246
  var sdkVersion = conn.sdk.version || 2;
244
- var queryParams = [];
245
- queryStatement = queryString.slice(0);
247
+ var queryParams = [];
248
+ queryStatement = queryString.slice(0);
246
249
  if (params) {
247
250
  // BO - patch prepared statement case when placeholder is used as a cursor
248
251
  var p = []
@@ -254,7 +257,7 @@ function Couchbase(conn, infos) {
254
257
  // rightCase already handled by default
255
258
  //, foundSpecialRightCase = /(\$|\%)\d+\.\w+/.test(qStr)
256
259
  ;
257
-
260
+
258
261
  // e.g.: c.documentNextId.$2 = $3
259
262
  // e.g.: n.alertedOn.$1 = true
260
263
  if (foundSpecialLeftCase) {
@@ -263,33 +266,34 @@ function Couchbase(conn, infos) {
263
266
  key = inl.indexOf(params[i]);
264
267
  if (key > -1) {
265
268
  p[key] = args[key];
266
-
267
- re = new RegExp('(.*)\\.'+ inl[key].replace(/([$%]+)/, '\\$1'));
269
+
270
+ re = new RegExp('(.*)\\.'+ inl[key].replace(/([$%]+)/, '\\$1'));
268
271
  if ( re.test(qStr) ) {
269
272
  p[key] = args[key];
270
273
  qStr = qStr.replace( new RegExp('(.*)\\.'+ params[i].replace(/([$%]+)/, '\\$1')), '$1\.'+args[i]);
271
274
  inl.splice(key, 1);
272
275
  }
273
- }
276
+ }
274
277
  }
275
278
 
276
- queryStatement = qStr;
277
- if ( sdkVersion > 2 ) { // starting from SDK v3
279
+
280
+ if ( sdkVersion == 3 ) { // SDK v3 only
278
281
  queryParams = {};
279
- index = 0; i = 0; len = inlineParams.length;
282
+ index = 0; i = 0; len = inlineParams.length;
280
283
  var matched = null;
281
- for (; i < len; ++i) {
284
+ for (; i < len; ++i) {
282
285
  //matched = params.indexOf( inlineParams[i] );
283
286
  matched = params.indexOf( inl[i] );
284
- if ( matched > -1 && typeof(p[matched]) != 'undefined' ) {
285
- // e.g.: queryParams[ $3 ] = 1
286
- queryParams[ inl[i] ] = p[matched]
287
+ if ( matched > -1 && typeof(p[matched]) != 'undefined' ) {
288
+ // e.g.: queryParams[ $3 ] = 1
289
+ queryParams[ inl[i] ] = p[matched];
290
+ // qStr = qStr.replace( new RegExp('\\'+ inl[i], 'g'), '"' + p[matched] + '"')
287
291
  }
288
292
  }
289
293
  } else {
290
294
  // Novemeber 2020 patch
291
295
  index = 0; i = 0; len = params.length;
292
- for (; i < len; ++i) {
296
+ for (; i < len; ++i) {
293
297
  if ( typeof(p[i]) != 'undefined' ) {
294
298
  queryParams[i] = p[i];
295
299
  } else { // means that placeholder has been replaced
@@ -298,124 +302,169 @@ function Couchbase(conn, infos) {
298
302
  }
299
303
  }
300
304
  }
301
-
305
+
306
+ queryStatement = qStr;
307
+
302
308
  }
303
-
309
+
304
310
  // e.g.: c.id = $1.id
305
311
  // if (foundSpecialRightCase) {
306
312
  // console.debug('foundSpecialRightCase...')
307
313
  // }
308
-
314
+
309
315
  // normal case
310
316
  if (
311
- !foundSpecialLeftCase /**&& !foundSpecialRightCase*/
312
- || Array.isArray(queryParams) && queryParams.length == 0
313
- ) {
314
- queryParams = args;
317
+ !foundSpecialLeftCase
318
+ || Array.isArray(queryParams) && queryParams.length == 0
319
+ ) {
320
+ queryParams = JSON.clone(args);
321
+ // starting from SDK v3
322
+ if ( typeof(queryParams[queryParams.length-1]) == 'function' ) {
323
+ queryParams.splice(queryParams.length-1, 1)
324
+ }
315
325
  }
316
326
  // EO - patch
317
327
  }
318
-
328
+
319
329
  var query = null, execQuery = null, _collection = null;
320
- // values by default
330
+ // adhoc option: @param {boolean} options.adhoc [ true | false ]
331
+ // default is set to false
332
+ //queryOptions.adhoc = false;
333
+
334
+ // scan consistency level: @param {number} options.consistency [ 1 | 2 | 3 ]
335
+ // Default is set to 1
336
+ //
337
+ // Default
338
+ // code : NOT_BOUNDED
339
+ // number : 1
340
+ // description : This is the default (for single-statement requests).
341
+ //
342
+ // Request plus
343
+ // code : REQUEST_PLUS
344
+ // number : 2
345
+ // description : This implements strong consistency per request.
346
+ // Update cycle every «20ms for memdb & 200ms for forestdb»
347
+ //
348
+ // Statement plus
349
+ // code : STATEMENT_PLUS
350
+ // number : 3
351
+ // description : This implements strong consistency per statement.
352
+ // Update cycle every «20ms for memdb & 200ms for forestdb»
353
+ //
354
+ //
355
+ // For more, visit :
356
+ // - https://blog.couchbase.com/high-performance-consistency/
357
+ // - https://developer.couchbase.com/documentation/server/current/architecture/querying-data-with-n1ql.html
358
+ // Query options values by default
321
359
  var queryOptions = {
322
- // Do not turn off the adhoc flag for each query since
360
+ // Do not turn off the adhoc flag for each query since
323
361
  // only a finite number of query plans (currently 5000) can be stored in the SDK
324
362
  adhoc: false, // false to use plan optimization, but need a statement `name param` or `num param`
325
363
  consistency: 1 // NOT_BOUNDED, but STATEMENT_PLUS is set by default for insert & update
326
364
  };
365
+
366
+
367
+ if ( /^(insert|update)/i.test(statement) ) {
368
+ queryOptions.adhoc = true;
369
+ queryOptions.consistency = 3; // STATEMENT_PLUS
370
+ }
371
+
327
372
  if ( sdkVersion > 2 ) { // starting from SDK v3
328
- _collection = queryStatement.match(/\_collection(\s+\=|=)(.*)(\'|\")/);
329
- if (_collection.length > 0) {
330
- _collection = _collection[0];
331
- if ( /\_collection/.test(_collection) ) {
332
- _collection = _collection.replace(/\_collection|\W+/ig, '');
333
- } else {
334
- _collection = null
335
- }
336
- }
337
-
338
- //var bucket = conn._cluster.bucket(conn._name);
373
+ // _collection = queryStatement.match(/\_collection(\s+\=|=)(.*)(\'|\")/);
374
+ // if (_collection.length > 0) {
375
+ // _collection = _collection[0];
376
+ // if ( /\_collection/.test(_collection) ) {
377
+ // _collection = _collection.replace(/\_collection|\W+/ig, '');
378
+ // } else {
379
+ // _collection = null
380
+ // }
381
+ // }
382
+
339
383
  //var scope = conn.scope(conn._name);
340
384
  //var coll = (_collection) ? scope.collection(_collection) : scope.defaultCollection();
341
385
  //execQuery = conn._cluster.query;
342
386
  execQuery = inherits(conn, conn._cluster.query);
343
-
387
+
344
388
  query = queryStatement;
345
389
  queryOptions.parameters = queryParams;
346
-
390
+
347
391
  } else { // version 2
348
- // prepared statement
392
+ // prepared statement
349
393
  query = N1qlQuery.fromString(queryStatement.replace(/^\s+/, ''));
350
394
  // query options
351
395
  // @param {object} options
352
396
  // @param {string} options.sample
353
397
 
354
- // adhoc option: @param {boolean} options.adhoc [ true | false ]
355
- // default is set to false
356
- //queryOptions.adhoc = false;
357
-
358
- // scan consistency level: @param {number} options.consistency [ 1 | 2 | 3 ]
359
- // Default is set to 1
360
- //
361
- // Default
362
- // code : NOT_BOUNDED
363
- // number : 1
364
- // description : This is the default (for single-statement requests).
365
- //
366
- // Request plus
367
- // code : REQUEST_PLUS
368
- // number : 2
369
- // description : This implements strong consistency per request.
370
- //
371
- // Statement plus
372
- // code : STATEMENT_PLUS
373
- // number : 3
374
- // description : This implements strong consistency per statement.
375
- //
376
- //
377
- // For more, visit :
378
- // - https://blog.couchbase.com/high-performance-consistency/
379
- // - https://developer.couchbase.com/documentation/server/current/architecture/querying-data-with-n1ql.html
380
- // queryOptions.consistency = 2; // 3
381
- // .adhoc(queryOptions.adhoc)
382
- // .consistency(queryOptions.consistency)
383
- //if ( /^(insert|update)/i.test(statement) ) {
384
- queryOptions.adhoc = true;
385
- queryOptions.consistency = 3; // NOT_BOUNDED
386
- query.consistency(3); // NOT_BOUNDED
387
- //}
398
+
399
+ // Setting up consistency
400
+ query.consistency(queryOptions.consistency);
388
401
  // merge options
389
402
  for (var qOpt in queryOptions) {
390
403
  if ( typeof(query[ qOpt ]) == 'undefined' ) {
391
- console.warn('N1QL:'+entityName.toLowerCase()+ '#'+ name + ': `'+ qOpt +'` is not a valid queryOption. Ignorig...');
404
+ console.warn('[N1QL]['+entityName.toLowerCase()+ '#'+ name + '] `'+ qOpt +'` is not a valid queryOption. Ignorig...');
392
405
  continue;
393
406
  }
394
407
  query[ qOpt ]( queryOptions[ qOpt ] );
395
- }
396
-
408
+ }
409
+
397
410
  }
398
411
 
399
-
412
+ // JUNE 2021 patch
413
+ // Adding support for FTS since it is not implemented in sdkVersion 2:
414
+ // variables not replaced by value
415
+ // looking for FTS (Full Text Search)
416
+ var ftsClause = ( sdkVersion > 2 ) ? query.match(/(search\(|search\s+\().*\)/i) : query.options.statement.match(/(search\(|search\s+\().*\)/i);
417
+ if (ftsClause && Array.isArray(queryParams) ) {
418
+ var originalFtsClauses = JSON.clone(ftsClause), _queryParams = null;
419
+
420
+ if ( sdkVersion > 2 && Array.isArray(queryOptions.parameters) ) {
421
+ _queryParams = queryOptions.parameters;
422
+ } else if (sdkVersion <=2 && Array.isArray(queryParams) ) {
423
+ _queryParams = queryParams;
424
+ }
425
+
426
+ for (let s = 0, sLen = ftsClause.length; s < sLen; s++) {
427
+ if ( !/\)$/.test(ftsClause[s]) ) continue;
428
+ for (let p = 0, pLen = _queryParams.length; p < pLen; p++) {
429
+ if ( typeof(_queryParams[p]) == 'function' ) continue;
430
+ let searchValue = ( /^(true|false)$/i.test(_queryParams[p]) ) ? _queryParams[p] : '"'+_queryParams[p]+'"';
431
+ ftsClause[s] = ftsClause[s].replace( new RegExp('\\$'+ (p+1),'g'), searchValue)
432
+ }
433
+
434
+ if ( sdkVersion > 2 ) {
435
+ query = query.replace(originalFtsClauses[s], ftsClause[s]);
436
+ } else {
437
+ query.options.statement = query.options.statement.replace(originalFtsClauses[s], ftsClause[s]);
438
+ }
439
+ }
440
+
441
+ originalFtsClauses = null;
442
+ }
443
+ ftsClause = null;
444
+
445
+
400
446
 
401
447
 
402
448
  // trick to set event on the fly
403
449
  var trigger = 'N1QL:'+entityName.toLowerCase()+ '#'+ name;
404
450
  var statement = (sdkVersion <= 2) ? query.options.statement : query;
405
-
451
+
406
452
  if (envIsDev) {
407
453
  //var statement = (sdkVersion <= 2) ? query.options.statement : query;
408
454
  console.debug('[ ' + trigger +' ] '+ statement);
409
455
  //console.debug('[ ' + trigger +' ] options: '+ JSON.stringify(queryOptions, null, 2));
456
+ if (queryParams.length > 0) {
457
+ console.debug('[ ' + trigger +' ] Found query params: '+ queryParams);
458
+ }
410
459
  }
411
-
412
-
413
-
460
+
461
+
462
+
414
463
  var onQueryCallback = function(err, data, meta) {
415
464
  // if (/^company#getDocumentNextId$/.test(trigger)) {
416
465
  // console.log('[ ' + trigger + '] onQueryCallback => ', err, data, meta);
417
466
  // }
418
-
467
+
419
468
  if (!data || data.length == 0) {
420
469
  data = null
421
470
  }
@@ -428,26 +477,26 @@ function Couchbase(conn, infos) {
428
477
  err.message = '[ '+source+' ]\n'+ err.message;
429
478
  err.stack = '[ '+source+' ]\n'+ err.stack;
430
479
  }
431
-
480
+
432
481
  // handle return type
433
- if ( returnType && returnType == 'boolean' ) {
482
+ if ( returnType && returnType == 'boolean' ) {
434
483
  // CASE #1
435
484
  // SELECT COUNT(a) AS someField <- means that keyword `COUNT(` is found in queryString
436
- // [ { someField: 1 }] <- a collection with only one object which has prop: <number>
437
- if (
485
+ // [ { someField: 1 }] <- a collection with only one object which has prop: <number>
486
+ if (
438
487
  /count\(|count\s+\(/i.test(queryString)
439
- && Array.isArray(data)
488
+ && Array.isArray(data)
440
489
  && /object/i.test(typeof(data[0]))
441
490
  && Object.keys(data[0]).length == 1
442
491
  && /number/i.test( typeof(data[0][Object.keys(data[0])]) )
443
492
  ) {
444
493
  data = ( data[0][Object.keys(data[0])] > 0 ) ? true : false
445
- }
494
+ }
446
495
  // CASE #2
447
496
  // regular query, just counting result
448
497
  else {
449
498
  data = ( typeof(data.length) != 'undefined' && data.length > 0 ) ? true : false
450
- }
499
+ }
451
500
  } else if ( returnType && returnType == 'object' ) {
452
501
 
453
502
  data = (data) ? data[0] : data
@@ -472,52 +521,54 @@ function Couchbase(conn, infos) {
472
521
  } else { // Promise case
473
522
  throw err
474
523
  }
475
-
524
+
476
525
  } else {
477
526
  if ( typeof(self.emit) != 'undefined' ) {
478
527
  self.emit(trigger, err, data, meta);
479
528
  } else { // Promise case
480
529
  return data
481
- }
530
+ }
482
531
  }
483
- return
532
+ return
484
533
  }
485
-
486
- } catch (_err) {
534
+
535
+ } catch (_err) {
487
536
  if ( _mainCallback != null ) {
488
537
  _mainCallback(err, data, meta)
489
538
  } else {
490
539
  if ( typeof(self.emit) != 'undefined' ) {
491
540
  self.emit(trigger, _err);
492
541
  } else {
493
- throw new Error('[ Couchbase ][ Core Entity Exception] '+ trigger + '\n'+ _err.stack)
494
- }
495
- }
542
+ throw new Error('[ Couchbase ][ Core Entity Exception] '+ trigger + '\n'+ _err.stack)
543
+ }
544
+ }
496
545
  }
497
546
  }; // EO onQueryCallback
498
-
547
+
499
548
  self._isRegisteredFromProto = false;
549
+ // `register()` is only used for v2
500
550
  var register = function (trigger, queryParams, onQueryCallback, cb) {
501
- // JUNE 2021 patch
502
- // Adding support for FTS since it is not implemented in sdkVersion 2:
503
- // variables not replaced by value
504
- // looking for FTS (Full Text Search)
505
- var ftsClause = query.options.statement.match(/(search\(|search\s+\().*\)/i);
506
- if (ftsClause && Array.isArray(queryParams) ) {
507
- var originalFtsClauses = JSON.clone(ftsClause);
508
- for (let s = 0, sLen = ftsClause.length; s < sLen; s++) {
509
- if ( !/\)$/.test(ftsClause[s]) ) continue;
510
- for (let p = 0, pLen = queryParams.length; p < pLen; p++) {
511
- if ( typeof(queryParams[p]) == 'function' ) continue;
512
- let searchValue = ( /^(true|false)$/i.test(queryParams[p]) ) ? queryParams[p] : '"'+queryParams[p]+'"';
513
- ftsClause[s] = ftsClause[s].replace( new RegExp('\\$'+ (p+1),'g'), searchValue)
514
- }
515
- query.options.statement = query.options.statement.replace(originalFtsClauses[s], ftsClause[s]);
516
- }
517
- originalFtsClauses = null;
518
- }
519
- ftsClause = null;
520
-
551
+ // // JUNE 2021 patch
552
+ // // Adding support for FTS since it is not implemented in sdkVersion 2:
553
+ // // variables not replaced by value
554
+ // // looking for FTS (Full Text Search)
555
+ // var ftsClause = query.options.statement.match(/(search\(|search\s+\().*\)/i);
556
+ // if (ftsClause && Array.isArray(queryParams) ) {
557
+ // var originalFtsClauses = JSON.clone(ftsClause);
558
+ // for (let s = 0, sLen = ftsClause.length; s < sLen; s++) {
559
+ // if ( !/\)$/.test(ftsClause[s]) ) continue;
560
+ // for (let p = 0, pLen = queryParams.length; p < pLen; p++) {
561
+ // if ( typeof(queryParams[p]) == 'function' ) continue;
562
+ // let searchValue = ( /^(true|false)$/i.test(queryParams[p]) ) ? queryParams[p] : '"'+queryParams[p]+'"';
563
+ // ftsClause[s] = ftsClause[s].replace( new RegExp('\\$'+ (p+1),'g'), searchValue)
564
+ // }
565
+ // query.options.statement = query.options.statement.replace(originalFtsClauses[s], ftsClause[s]);
566
+ // }
567
+ // originalFtsClauses = null;
568
+ // }
569
+ // ftsClause = null;
570
+
571
+
521
572
  if ( typeof(self.once) != 'undefined' && typeof(cb) != 'undefined' ) {
522
573
  self._isRegisteredFromProto = true;
523
574
  //console.debug('registered trigger: ', trigger, self._isRegisteredFromProto);
@@ -525,106 +576,109 @@ function Couchbase(conn, infos) {
525
576
  //console.debug('received ', trigger, meta, err);
526
577
  try {
527
578
  cb(err, data, meta)
528
- } catch (onCompleteError) {
579
+ } catch (onCompleteError) {
529
580
  cb(onCompleteError)
530
- }
581
+ }
531
582
  });
532
583
  // if (/triggerToDebug/.test(trigger)) {
533
584
  // console.log('[ ' + trigger + '] onQuery => ', query, queryParams);
534
585
  // }
535
- conn.query(query, queryParams, onQueryCallback);
536
- } // else promise case
537
-
538
-
586
+
587
+ if (sdkVersion > 2) {
588
+ conn._cluster.query(query, queryParams)
589
+ .catch( function onError(err) {
590
+ try {
591
+ var error = new Error(err.cause.first_error_message);
592
+ error.stack = trigger +'\n'+ err.cause.http_body;
593
+ onQueryCallback(error);
594
+ } catch (_err) {
595
+ console.error(_err.stack);
596
+ }
597
+ })
598
+ .then( function onResult(data, meta) {
599
+ try {
600
+ onQueryCallback(false, data.rows, data.meta);
601
+ } catch (_err) {
602
+ console.error(_err.stack);
603
+ }
604
+ });
605
+ } else {
606
+ conn.query(query, queryParams, onQueryCallback);
607
+ }
608
+
609
+
610
+ } // else promise case
611
+
612
+
539
613
  if (!self._isRegisteredFromProto) {
540
614
  //console.debug('regular trigger: ', trigger, self._isRegisteredFromProto);
541
615
  // if (/triggerToDebug/.test(trigger)) {
542
616
  // console.log('[ ' + trigger + '] onQuery => ', query, queryParams);
543
617
  // }
544
- conn.query(query, queryParams, onQueryCallback);
618
+
619
+ if (sdkVersion > 2) {
620
+ conn._cluster.query(query, queryParams)
621
+ .catch( function onError(err) {
622
+ try {
623
+ var error = new Error(err.cause.first_error_message);
624
+ error.stack = trigger +'\n'+ err.cause.http_body;
625
+ onQueryCallback(error);
626
+ } catch (_err) {
627
+ console.error(_err.stack);
628
+ }
629
+ })
630
+ .then( function onResult(data) {
631
+ try {
632
+ onQueryCallback(false, data.rows, data.meta);
633
+ } catch (_err) {
634
+ console.error(_err.stack);
635
+ }
636
+ });
637
+ } else {
638
+ conn.query(query, queryParams, onQueryCallback);
639
+ }
545
640
  }
546
- }
547
-
641
+ } //EO register
642
+
548
643
  var _proto = {
549
- onComplete : function(cb) {
550
- //console.debug('onComplete trigger: ', trigger, self._isRegisteredFromProto);
551
- register(trigger, queryParams, onQueryCallback, cb)
644
+ onComplete : function(cb) {
645
+ // console.warn('onComplete trigger: ', trigger, self._isRegisteredFromProto);
646
+ if ( sdkVersion > 2 ) {
647
+ register(trigger, queryOptions, onQueryCallback, cb)
648
+ } else {
649
+ register(trigger, queryParams, onQueryCallback, cb)
650
+ }
552
651
  }
553
652
  };
554
-
555
-
556
- if ( sdkVersion > 2 ) {
557
- var qErr = false, qData = null, qMeta = null;
558
-
559
- if ( _mainCallback == null ) {
560
- return {
561
- onComplete : function(cb) {
562
- //console.debug('registered trigger: ', trigger);
563
- self.once(trigger, function onComplete(err, data, meta){
564
- //console.debug('received ', trigger);
565
- try {
566
- cb(err, data, meta)
567
- } catch (onCompleteError) {
568
- cb(onCompleteError)
569
- }
570
- });
571
-
572
- conn._cluster.query(query, queryOptions)
573
- .catch( function onError(err) {
574
- qErr = err;
575
- })
576
- .then( function onResult(data, meta) {
577
- qData = data;
578
- qMeta = meta;
579
- });
580
-
581
- try {
582
- if ( qErr ) {
583
- onQueryCallback(qErr);
584
- } else {
585
- onQueryCallback(false, qData, qMeta);
586
- }
587
- } catch (_err) {
588
- console.error(_err.stack);
589
- }
653
+
654
+
655
+ if ( sdkVersion > 2 ) {
656
+ if ( _mainCallback == null ) {
657
+ setTimeout((trigger, queryOptions, onQueryCallback) => {
658
+ if (!self._isRegisteredFromProto) {
659
+ // needed when used as a synchrone method
660
+ register(trigger, queryOptions, onQueryCallback);
590
661
  }
591
- }
662
+ }, 0, trigger, queryOptions, onQueryCallback);
663
+ return _proto
664
+
592
665
  } else {
593
- conn._cluster.query(query, queryOptions)
594
- .catch( function onError(err) {
595
- qErr = err;
596
- })
597
- .then( function onResult(data, meta) {
598
- qData = data;
599
- qMeta = meta;
600
- });
601
-
602
- try {
603
- if ( qErr ) {
604
- onQueryCallback(qErr);
605
- } else {
606
- onQueryCallback(false, qData, qMeta);
607
- }
608
- } catch (_err) {
609
- console.error(_err.stack);
610
- }
611
- }
612
-
613
-
614
- } else {
615
-
616
- if ( _mainCallback == null ) {
666
+ register(trigger, queryOptions, onQueryCallback, _mainCallback)
667
+ }
668
+ } else {
669
+
670
+ if ( _mainCallback == null ) {
617
671
  setTimeout((trigger, queryParams, onQueryCallback) => {
618
- if (!self._isRegisteredFromProto) {
619
- // needed when used as a synchrone method
672
+ if (!self._isRegisteredFromProto) {
673
+ // needed when used as a synchrone method
620
674
  register(trigger, queryParams, onQueryCallback);
621
675
  }
622
- }, 0, trigger, queryParams, onQueryCallback);
623
- return _proto
624
-
676
+ }, 0, trigger, queryParams, onQueryCallback);
677
+ return _proto
678
+
625
679
  } else {
626
680
  register(trigger, queryParams, onQueryCallback, _mainCallback)
627
- }
681
+ }
628
682
  }
629
683
  }
630
684
 
@@ -637,27 +691,39 @@ function Couchbase(conn, infos) {
637
691
 
638
692
  /**
639
693
  * bulkInsert
640
- *
694
+ *
641
695
  * Supported options
642
696
  * - adhoc : [ true | false ]
643
- * // scan consistency level - default is 1
697
+ * // scan consistency level - here, default is 3
644
698
  * - consistency : [ 1 | 2 | 3 ] where 1 = NOT_BOUNDED, 2 = REQUEST_PLUS, 3 = STATEMENT_PLUS
645
- *
699
+ * not_bounded:
700
+ * Executes the query immediately, without requiring any consistency for the query. If index-maintenance is running behind, out-of-date results may be returned.
701
+ * at_plus:
702
+ * Executes the query, requiring indexes first to be updated to the timestamp of the last update. If index-maintenance is running behind, the query waits for it to catch up.
703
+ * request_plus:
704
+ * Executes the query, requiring the indexes first to be updated to the timestamp of the current query-request. If index-maintenance is running behind, the query waits for it to catch up.
705
+ *
646
706
  * @param {array} rec collection
647
- * @param {object} [options] e.g: { consistency: 3 }
648
- *
707
+ * @param {object} [options] e.g: { consistency: 2 }
708
+ *
649
709
  */
650
710
  var bulkInsert = function(rec, options) {
651
711
 
652
- try {
653
- var conn = this.getConnection();
654
- var sdkVersion = conn.sdk.version || 2;
712
+ try {
713
+ var conn = this.getConnection();
714
+ // retrieve & return the collection
715
+ // if ( typeof(conn._scope) == 'undefined' && typeof(conn.scope) != 'undefined' ) {
716
+ // var newConn = conn.scope(scope).collection(currentCollection);
717
+ // newConn.sdk = conn.sdk;
718
+ // conn = newConn;
719
+ // }
720
+ var sdkVersion = conn.sdk.version || 2;
655
721
  // by default
656
- var queryOptions = {
722
+ var queryOptions = {
657
723
  adhoc: true,
658
724
  consistency: 3
659
725
  };
660
-
726
+
661
727
  if ( typeof(options) != 'undefined' ) {
662
728
  queryOptions = merge(options, queryOptions)
663
729
  }
@@ -670,7 +736,8 @@ function Couchbase(conn, infos) {
670
736
 
671
737
 
672
738
  var queryString = 'INSERT INTO '+ this.database +' (KEY, VALUE)';
673
- for (var id in rec) {
739
+ var recCount = 0;
740
+ for (let id in rec) {
674
741
  if ( typeof(rec[id].values) == 'undefined' )
675
742
  throw new Error('rec["'+ id +'"].values not found ! Please inspect your record root: type must be an Array.');
676
743
 
@@ -680,67 +747,114 @@ function Couchbase(conn, infos) {
680
747
  rec[id].values._collection = this._collection;
681
748
 
682
749
  queryString += '\t\nVALUES ("'+ id +'", '+ JSON.stringify(rec[id].values) +'),';
750
+ recCount++;
683
751
  }
684
752
 
685
753
  queryString = queryString.substr(0, queryString.length-1);
686
754
  queryString += '\nRETURNING '+ this.database +'.*;';
687
755
 
688
-
756
+
689
757
  var query = null;
690
758
  if ( sdkVersion > 2) { // starting SDK v3
691
- var scope = conn.scope(conn._name);
692
- var coll = (_collection) ? scope.collection(_collection) : scope.defaultCollection();
693
- query = merge(queryString, queryOptions);
759
+ query = queryString;
760
+ // queryOptions.parameters = queryParams;
694
761
  } else {
695
762
  // prepared statement
696
763
  query = N1qlQuery.fromString(queryString);
764
+ query.consistency(queryOptions.consistency);
697
765
  // merge options
698
766
  for (var qOpt in queryOptions) {
699
767
  if ( typeof(query[ qOpt ]) == 'undefined' ) {
700
- console.warn('N1QL:'+entityName.toLowerCase()+ '#'+ name + ': `'+ qOpt +'` is not a valid queryOption. Ignorig...');
768
+ console.warn('[N1QL]['+entityName.toLowerCase()+ '#'+ name + '] `'+ qOpt +'` is not a valid queryOption. Ignorig...');
701
769
  continue;
702
770
  }
703
771
  query[ qOpt ]( queryOptions[ qOpt ] )
704
772
  }
705
773
  }
706
-
774
+
707
775
 
708
776
  // trick to set event on the fly
709
777
  var trigger = 'N1QL:'+ this.name.toLowerCase()+ '#'+ name;
710
778
  // trick to set event on the fly
711
779
  var statement = (sdkVersion <= 2) ? query.options.statement : query;
712
-
780
+
713
781
  if (envIsDev) {
714
782
  console.debug('[ ' + trigger +' ] '+statement);
715
783
  }
716
784
 
717
785
  var self = this;
718
- conn.query(query, rec, function(err, data, meta) {
719
- if (!data || data.length == 0) {
720
- data = null
721
- }
722
786
 
723
- if (!err && meta && typeof(meta.errors) != 'undefined' ) {
724
- err = new Error('`GenericN1QLError::bulkInsert`\n'+meta.errors[0].msg);
725
- err.status = 403;
726
- } else if (err) {
727
- err.status = 500;
728
- err.message = '`GenericN1QLError::bulkInsert`\n'+ err.message;
729
- err.stack = '`GenericN1QLError::bulkInsert`\n'+ err.stack;
730
- }
731
- if (envIsDev) {
732
- console.debug('[ bulkInsert response ] : err ? '+ err + ', meta : \n'+ JSON.stringify(meta) +'\n data :\n'+ JSON.stringify(data) );
733
- }
787
+ if (sdkVersion > 2) {
788
+ var err = false;
789
+ conn._scope._bucket._cluster.query(query, queryOptions)
790
+ .catch( function onError(err) {
791
+ try {
792
+ var error = new Error(err.cause.first_error_message);
793
+ error.stack = trigger +'\n'+ err.cause.http_body;
794
+ self.emit(trigger, error);
795
+ } catch (_err) {
796
+ console.error(_err.stack);
797
+ }
798
+ })
799
+ .then( function onResult(data) {
800
+ try {
801
+ var _data = data.rows, _meta = data.meta;
802
+ if (!_data || _data.length == 0) {
803
+ _data = null
804
+ }
805
+
806
+ if (!err && _meta && typeof(_meta.errors) != 'undefined' ) {
807
+ err = new Error('`GenericN1QLError::bulkInsert`\n'+_meta.errors[0].msg);
808
+ err.status = 403;
809
+ } else if (err) {
810
+ err.status = 500;
811
+ err.message = '`GenericN1QLError::bulkInsert`\n'+ err.message;
812
+ err.stack = '`GenericN1QLError::bulkInsert`\n'+ err.stack;
813
+ }
814
+ if (envIsDev) {
815
+ console.debug('[ bulkInsert response ] : err ? '+ err + ', meta : \n'+ JSON.stringify(_meta) +'\n data :\n'+ JSON.stringify(_data) );
816
+ }
817
+
818
+ self.emit(trigger, err, data.rows, data.meta);
819
+ // Tempory fix
820
+ // setTimeout(() => {
821
+ // self.emit(trigger, err, data.rows, data.meta);
822
+ // }, (9+recCount) );
823
+
824
+ } catch (_err) {
825
+ console.error(_err.stack);
826
+ }
827
+ });
828
+ } else {
829
+ conn.query(query, rec, function(err, data, meta) {
830
+ if (!data || data.length == 0) {
831
+ data = null
832
+ }
833
+
834
+ if (!err && meta && typeof(meta.errors) != 'undefined' ) {
835
+ err = new Error('`GenericN1QLError::bulkInsert`\n'+meta.errors[0].msg);
836
+ err.status = 403;
837
+ } else if (err) {
838
+ err.status = 500;
839
+ err.message = '`GenericN1QLError::bulkInsert`\n'+ err.message;
840
+ err.stack = '`GenericN1QLError::bulkInsert`\n'+ err.stack;
841
+ }
842
+ if (envIsDev) {
843
+ console.debug('[ bulkInsert response ] : err ? '+ err + ', meta : \n'+ JSON.stringify(meta) +'\n data :\n'+ JSON.stringify(data) );
844
+ }
845
+
846
+ self.emit(trigger, err, data, meta);
847
+ });
848
+ }
734
849
 
735
- self.emit(trigger, err, data, meta);
736
- });
737
850
 
738
851
  return {
739
852
  onComplete : function(cb) {
740
853
  self.once(trigger, function(err, data, meta){
741
854
  if (envIsDev) {
742
- console.debug('[ bulkInsert triggerd ] '+ trigger);
855
+ console.debug('[ bulkInsert triggerd ] '+ trigger + ' - Rec count: '+ recCount);
743
856
  }
857
+
744
858
  cb(err, data, meta)
745
859
  })
746
860
  }
@@ -752,6 +866,6 @@ function Couchbase(conn, infos) {
752
866
  }
753
867
 
754
868
  return init(conn, infos)
755
- };
869
+ }
756
870
 
757
- module.exports = Couchbase
871
+ module.exports = Couchbase;