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