@quantiya/codevibe-claude-plugin 1.0.13 → 1.0.15

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 (439) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/node_modules/@quantiya/codevibe-core/README.md +179 -0
  3. package/node_modules/@quantiya/codevibe-core/bin/codevibe.js +7 -0
  4. package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.d.ts +132 -0
  5. package/node_modules/@quantiya/codevibe-core/dist/appsync/index.d.ts +2 -0
  6. package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.d.ts +16 -0
  7. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.d.ts +5 -0
  8. package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.d.ts +87 -0
  9. package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.d.ts +11 -0
  10. package/node_modules/@quantiya/codevibe-core/dist/auth/index.d.ts +2 -0
  11. package/node_modules/@quantiya/codevibe-core/dist/config/config.d.ts +53 -0
  12. package/node_modules/@quantiya/codevibe-core/dist/config/index.d.ts +2 -0
  13. package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.d.ts +118 -0
  14. package/node_modules/@quantiya/codevibe-core/dist/crypto/index.d.ts +1 -0
  15. package/node_modules/@quantiya/codevibe-core/dist/index.d.ts +14 -0
  16. package/node_modules/@quantiya/codevibe-core/dist/index.js +220 -0
  17. package/node_modules/@quantiya/codevibe-core/dist/keychain/index.d.ts +1 -0
  18. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-backend.d.ts +3 -0
  19. package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.d.ts +139 -0
  20. package/node_modules/@quantiya/codevibe-core/dist/logger/index.d.ts +1 -0
  21. package/node_modules/@quantiya/codevibe-core/dist/logger/logger.d.ts +35 -0
  22. package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.d.ts +39 -0
  23. package/node_modules/@quantiya/codevibe-core/dist/session/index.d.ts +2 -0
  24. package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.d.ts +55 -0
  25. package/node_modules/@quantiya/codevibe-core/dist/types/auth.d.ts +15 -0
  26. package/node_modules/@quantiya/codevibe-core/dist/types/encryption.d.ts +54 -0
  27. package/node_modules/@quantiya/codevibe-core/dist/types/events.d.ts +74 -0
  28. package/node_modules/@quantiya/codevibe-core/dist/types/index.d.ts +4 -0
  29. package/node_modules/@quantiya/codevibe-core/dist/types/session.d.ts +59 -0
  30. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CHANGELOG.md +274 -0
  31. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/CONTRIBUTING.md +18 -0
  32. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/LICENSE.md +9 -0
  33. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/README.md +466 -0
  34. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/bin/uuid +2 -0
  35. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/index.js +79 -0
  36. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/md5.js +223 -0
  37. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/native.js +11 -0
  38. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/nil.js +8 -0
  39. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/parse.js +45 -0
  40. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/regex.js +8 -0
  41. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/rng.js +25 -0
  42. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/sha1.js +104 -0
  43. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/stringify.js +44 -0
  44. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v1.js +107 -0
  45. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v3.js +16 -0
  46. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v35.js +80 -0
  47. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v4.js +43 -0
  48. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/v5.js +16 -0
  49. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/validate.js +17 -0
  50. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/commonjs-browser/version.js +21 -0
  51. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/index.js +9 -0
  52. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  53. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/native.js +4 -0
  54. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  55. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  56. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  57. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/rng.js +18 -0
  58. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  59. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/stringify.js +33 -0
  60. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  61. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  62. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v35.js +66 -0
  63. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v4.js +29 -0
  64. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  65. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  66. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-browser/version.js +11 -0
  67. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/index.js +9 -0
  68. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/md5.js +13 -0
  69. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/native.js +4 -0
  70. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/nil.js +1 -0
  71. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/parse.js +35 -0
  72. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/regex.js +1 -0
  73. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/rng.js +12 -0
  74. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  75. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/stringify.js +33 -0
  76. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v1.js +95 -0
  77. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v3.js +4 -0
  78. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v35.js +66 -0
  79. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v4.js +29 -0
  80. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/v5.js +4 -0
  81. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/validate.js +7 -0
  82. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/esm-node/version.js +11 -0
  83. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/index.js +79 -0
  84. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5-browser.js +223 -0
  85. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/md5.js +23 -0
  86. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native-browser.js +11 -0
  87. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/native.js +15 -0
  88. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/nil.js +8 -0
  89. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/parse.js +45 -0
  90. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/regex.js +8 -0
  91. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng-browser.js +25 -0
  92. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/rng.js +24 -0
  93. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1-browser.js +104 -0
  94. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/sha1.js +23 -0
  95. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/stringify.js +44 -0
  96. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/uuid-bin.js +85 -0
  97. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v1.js +107 -0
  98. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v3.js +16 -0
  99. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v35.js +80 -0
  100. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v4.js +43 -0
  101. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/v5.js +16 -0
  102. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/validate.js +17 -0
  103. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/dist/version.js +21 -0
  104. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/package.json +135 -0
  105. package/node_modules/@quantiya/codevibe-core/node_modules/uuid/wrapper.mjs +10 -0
  106. package/node_modules/@quantiya/codevibe-core/package.json +56 -0
  107. package/node_modules/base64-js/LICENSE +21 -0
  108. package/node_modules/base64-js/README.md +34 -0
  109. package/node_modules/base64-js/base64js.min.js +1 -0
  110. package/node_modules/base64-js/index.d.ts +3 -0
  111. package/node_modules/base64-js/index.js +150 -0
  112. package/node_modules/base64-js/package.json +47 -0
  113. package/node_modules/bl/.travis.yml +17 -0
  114. package/node_modules/bl/BufferList.js +396 -0
  115. package/node_modules/bl/LICENSE.md +13 -0
  116. package/node_modules/bl/README.md +247 -0
  117. package/node_modules/bl/bl.js +84 -0
  118. package/node_modules/bl/package.json +37 -0
  119. package/node_modules/bl/test/convert.js +21 -0
  120. package/node_modules/bl/test/indexOf.js +492 -0
  121. package/node_modules/bl/test/isBufferList.js +32 -0
  122. package/node_modules/bl/test/test.js +869 -0
  123. package/node_modules/buffer/AUTHORS.md +70 -0
  124. package/node_modules/buffer/LICENSE +21 -0
  125. package/node_modules/buffer/README.md +410 -0
  126. package/node_modules/buffer/index.d.ts +186 -0
  127. package/node_modules/buffer/index.js +1817 -0
  128. package/node_modules/buffer/package.json +96 -0
  129. package/node_modules/chownr/LICENSE +15 -0
  130. package/node_modules/chownr/README.md +3 -0
  131. package/node_modules/chownr/chownr.js +167 -0
  132. package/node_modules/chownr/package.json +29 -0
  133. package/node_modules/decompress-response/index.d.ts +22 -0
  134. package/node_modules/decompress-response/index.js +58 -0
  135. package/node_modules/decompress-response/license +9 -0
  136. package/node_modules/decompress-response/package.json +56 -0
  137. package/node_modules/decompress-response/readme.md +48 -0
  138. package/node_modules/deep-extend/CHANGELOG.md +46 -0
  139. package/node_modules/deep-extend/LICENSE +20 -0
  140. package/node_modules/deep-extend/README.md +91 -0
  141. package/node_modules/deep-extend/index.js +1 -0
  142. package/node_modules/deep-extend/lib/deep-extend.js +150 -0
  143. package/node_modules/deep-extend/package.json +62 -0
  144. package/node_modules/detect-libc/LICENSE +201 -0
  145. package/node_modules/detect-libc/README.md +163 -0
  146. package/node_modules/detect-libc/index.d.ts +14 -0
  147. package/node_modules/detect-libc/lib/detect-libc.js +313 -0
  148. package/node_modules/detect-libc/lib/elf.js +39 -0
  149. package/node_modules/detect-libc/lib/filesystem.js +51 -0
  150. package/node_modules/detect-libc/lib/process.js +24 -0
  151. package/node_modules/detect-libc/package.json +44 -0
  152. package/node_modules/end-of-stream/LICENSE +21 -0
  153. package/node_modules/end-of-stream/README.md +54 -0
  154. package/node_modules/end-of-stream/index.js +96 -0
  155. package/node_modules/end-of-stream/package.json +37 -0
  156. package/node_modules/expand-template/.travis.yml +6 -0
  157. package/node_modules/expand-template/LICENSE +21 -0
  158. package/node_modules/expand-template/README.md +43 -0
  159. package/node_modules/expand-template/index.js +26 -0
  160. package/node_modules/expand-template/package.json +29 -0
  161. package/node_modules/expand-template/test.js +67 -0
  162. package/node_modules/fs-constants/LICENSE +21 -0
  163. package/node_modules/fs-constants/README.md +26 -0
  164. package/node_modules/fs-constants/browser.js +1 -0
  165. package/node_modules/fs-constants/index.js +1 -0
  166. package/node_modules/fs-constants/package.json +19 -0
  167. package/node_modules/github-from-package/.travis.yml +4 -0
  168. package/node_modules/github-from-package/LICENSE +18 -0
  169. package/node_modules/github-from-package/example/package.json +8 -0
  170. package/node_modules/github-from-package/example/url.js +3 -0
  171. package/node_modules/github-from-package/index.js +17 -0
  172. package/node_modules/github-from-package/package.json +30 -0
  173. package/node_modules/github-from-package/readme.markdown +53 -0
  174. package/node_modules/github-from-package/test/a.json +8 -0
  175. package/node_modules/github-from-package/test/b.json +5 -0
  176. package/node_modules/github-from-package/test/c.json +5 -0
  177. package/node_modules/github-from-package/test/d.json +7 -0
  178. package/node_modules/github-from-package/test/e.json +5 -0
  179. package/node_modules/github-from-package/test/url.js +19 -0
  180. package/node_modules/ieee754/LICENSE +11 -0
  181. package/node_modules/ieee754/README.md +51 -0
  182. package/node_modules/ieee754/index.d.ts +10 -0
  183. package/node_modules/ieee754/index.js +85 -0
  184. package/node_modules/ieee754/package.json +52 -0
  185. package/node_modules/ini/LICENSE +15 -0
  186. package/node_modules/ini/README.md +102 -0
  187. package/node_modules/ini/ini.js +206 -0
  188. package/node_modules/ini/package.json +33 -0
  189. package/node_modules/keytar/LICENSE.md +20 -0
  190. package/node_modules/keytar/README.md +94 -0
  191. package/node_modules/keytar/binding.gyp +66 -0
  192. package/node_modules/keytar/build/Release/keytar.node +0 -0
  193. package/node_modules/keytar/keytar.d.ts +51 -0
  194. package/node_modules/keytar/lib/keytar.js +43 -0
  195. package/node_modules/keytar/package.json +66 -0
  196. package/node_modules/keytar/src/async.cc +242 -0
  197. package/node_modules/keytar/src/async.h +103 -0
  198. package/node_modules/keytar/src/credentials.h +13 -0
  199. package/node_modules/keytar/src/keytar.h +41 -0
  200. package/node_modules/keytar/src/keytar_mac.cc +296 -0
  201. package/node_modules/keytar/src/keytar_posix.cc +184 -0
  202. package/node_modules/keytar/src/keytar_win.cc +272 -0
  203. package/node_modules/keytar/src/main.cc +139 -0
  204. package/node_modules/mimic-response/index.d.ts +17 -0
  205. package/node_modules/mimic-response/index.js +77 -0
  206. package/node_modules/mimic-response/license +9 -0
  207. package/node_modules/mimic-response/package.json +42 -0
  208. package/node_modules/mimic-response/readme.md +78 -0
  209. package/node_modules/minimist/.eslintrc +29 -0
  210. package/node_modules/minimist/.github/FUNDING.yml +12 -0
  211. package/node_modules/minimist/.nycrc +14 -0
  212. package/node_modules/minimist/CHANGELOG.md +298 -0
  213. package/node_modules/minimist/LICENSE +18 -0
  214. package/node_modules/minimist/README.md +121 -0
  215. package/node_modules/minimist/example/parse.js +4 -0
  216. package/node_modules/minimist/index.js +263 -0
  217. package/node_modules/minimist/package.json +75 -0
  218. package/node_modules/minimist/test/all_bool.js +34 -0
  219. package/node_modules/minimist/test/bool.js +177 -0
  220. package/node_modules/minimist/test/dash.js +43 -0
  221. package/node_modules/minimist/test/default_bool.js +37 -0
  222. package/node_modules/minimist/test/dotted.js +24 -0
  223. package/node_modules/minimist/test/kv_short.js +32 -0
  224. package/node_modules/minimist/test/long.js +33 -0
  225. package/node_modules/minimist/test/num.js +38 -0
  226. package/node_modules/minimist/test/parse.js +209 -0
  227. package/node_modules/minimist/test/parse_modified.js +11 -0
  228. package/node_modules/minimist/test/proto.js +64 -0
  229. package/node_modules/minimist/test/short.js +69 -0
  230. package/node_modules/minimist/test/stop_early.js +17 -0
  231. package/node_modules/minimist/test/unknown.js +104 -0
  232. package/node_modules/minimist/test/whitespace.js +10 -0
  233. package/node_modules/mkdirp-classic/LICENSE +21 -0
  234. package/node_modules/mkdirp-classic/README.md +18 -0
  235. package/node_modules/mkdirp-classic/index.js +98 -0
  236. package/node_modules/mkdirp-classic/package.json +18 -0
  237. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  238. package/node_modules/napi-build-utils/LICENSE +21 -0
  239. package/node_modules/napi-build-utils/README.md +52 -0
  240. package/node_modules/napi-build-utils/index.js +214 -0
  241. package/node_modules/napi-build-utils/index.md +0 -0
  242. package/node_modules/napi-build-utils/package.json +42 -0
  243. package/node_modules/node-abi/LICENSE +21 -0
  244. package/node_modules/node-abi/README.md +54 -0
  245. package/node_modules/node-abi/abi_registry.json +439 -0
  246. package/node_modules/node-abi/index.js +179 -0
  247. package/node_modules/node-abi/package.json +45 -0
  248. package/node_modules/node-addon-api/LICENSE.md +13 -0
  249. package/node_modules/node-addon-api/README.md +293 -0
  250. package/node_modules/node-addon-api/common.gypi +21 -0
  251. package/node_modules/node-addon-api/except.gypi +25 -0
  252. package/node_modules/node-addon-api/index.js +11 -0
  253. package/node_modules/node-addon-api/napi-inl.deprecated.h +192 -0
  254. package/node_modules/node-addon-api/napi-inl.h +6209 -0
  255. package/node_modules/node-addon-api/napi.h +2983 -0
  256. package/node_modules/node-addon-api/node_api.gyp +9 -0
  257. package/node_modules/node-addon-api/noexcept.gypi +26 -0
  258. package/node_modules/node-addon-api/nothing.c +0 -0
  259. package/node_modules/node-addon-api/package-support.json +21 -0
  260. package/node_modules/node-addon-api/package.json +399 -0
  261. package/node_modules/node-addon-api/tools/README.md +73 -0
  262. package/node_modules/node-addon-api/tools/check-napi.js +100 -0
  263. package/node_modules/node-addon-api/tools/clang-format.js +68 -0
  264. package/node_modules/node-addon-api/tools/conversion.js +309 -0
  265. package/node_modules/node-addon-api/tools/eslint-format.js +71 -0
  266. package/node_modules/prebuild-install/CHANGELOG.md +131 -0
  267. package/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  268. package/node_modules/prebuild-install/LICENSE +21 -0
  269. package/node_modules/prebuild-install/README.md +163 -0
  270. package/node_modules/prebuild-install/asset.js +44 -0
  271. package/node_modules/prebuild-install/bin.js +78 -0
  272. package/node_modules/prebuild-install/download.js +142 -0
  273. package/node_modules/prebuild-install/error.js +14 -0
  274. package/node_modules/prebuild-install/help.txt +16 -0
  275. package/node_modules/prebuild-install/index.js +1 -0
  276. package/node_modules/prebuild-install/log.js +33 -0
  277. package/node_modules/prebuild-install/package.json +67 -0
  278. package/node_modules/prebuild-install/proxy.js +35 -0
  279. package/node_modules/prebuild-install/rc.js +64 -0
  280. package/node_modules/prebuild-install/util.js +143 -0
  281. package/node_modules/pump/.github/FUNDING.yml +2 -0
  282. package/node_modules/pump/.travis.yml +5 -0
  283. package/node_modules/pump/LICENSE +21 -0
  284. package/node_modules/pump/README.md +74 -0
  285. package/node_modules/pump/SECURITY.md +5 -0
  286. package/node_modules/pump/empty.js +1 -0
  287. package/node_modules/pump/index.js +86 -0
  288. package/node_modules/pump/package.json +30 -0
  289. package/node_modules/pump/test-browser.js +66 -0
  290. package/node_modules/pump/test-node.js +53 -0
  291. package/node_modules/rc/LICENSE.APACHE2 +15 -0
  292. package/node_modules/rc/LICENSE.BSD +26 -0
  293. package/node_modules/rc/LICENSE.MIT +24 -0
  294. package/node_modules/rc/README.md +227 -0
  295. package/node_modules/rc/browser.js +7 -0
  296. package/node_modules/rc/cli.js +4 -0
  297. package/node_modules/rc/index.js +53 -0
  298. package/node_modules/rc/lib/utils.js +104 -0
  299. package/node_modules/rc/package.json +29 -0
  300. package/node_modules/rc/test/ini.js +16 -0
  301. package/node_modules/rc/test/nested-env-vars.js +50 -0
  302. package/node_modules/rc/test/test.js +59 -0
  303. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  304. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  305. package/node_modules/readable-stream/LICENSE +47 -0
  306. package/node_modules/readable-stream/README.md +106 -0
  307. package/node_modules/readable-stream/errors-browser.js +127 -0
  308. package/node_modules/readable-stream/errors.js +116 -0
  309. package/node_modules/readable-stream/experimentalWarning.js +17 -0
  310. package/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  311. package/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  312. package/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  313. package/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  314. package/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  315. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  316. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  317. package/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  318. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  319. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  320. package/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  321. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  322. package/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  323. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  324. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  325. package/node_modules/readable-stream/package.json +68 -0
  326. package/node_modules/readable-stream/readable-browser.js +9 -0
  327. package/node_modules/readable-stream/readable.js +16 -0
  328. package/node_modules/safe-buffer/LICENSE +21 -0
  329. package/node_modules/safe-buffer/README.md +584 -0
  330. package/node_modules/safe-buffer/index.d.ts +187 -0
  331. package/node_modules/safe-buffer/index.js +65 -0
  332. package/node_modules/safe-buffer/package.json +51 -0
  333. package/node_modules/semver/LICENSE +15 -0
  334. package/node_modules/semver/README.md +665 -0
  335. package/node_modules/semver/bin/semver.js +191 -0
  336. package/node_modules/semver/classes/comparator.js +143 -0
  337. package/node_modules/semver/classes/index.js +7 -0
  338. package/node_modules/semver/classes/range.js +557 -0
  339. package/node_modules/semver/classes/semver.js +333 -0
  340. package/node_modules/semver/functions/clean.js +8 -0
  341. package/node_modules/semver/functions/cmp.js +54 -0
  342. package/node_modules/semver/functions/coerce.js +62 -0
  343. package/node_modules/semver/functions/compare-build.js +9 -0
  344. package/node_modules/semver/functions/compare-loose.js +5 -0
  345. package/node_modules/semver/functions/compare.js +7 -0
  346. package/node_modules/semver/functions/diff.js +60 -0
  347. package/node_modules/semver/functions/eq.js +5 -0
  348. package/node_modules/semver/functions/gt.js +5 -0
  349. package/node_modules/semver/functions/gte.js +5 -0
  350. package/node_modules/semver/functions/inc.js +21 -0
  351. package/node_modules/semver/functions/lt.js +5 -0
  352. package/node_modules/semver/functions/lte.js +5 -0
  353. package/node_modules/semver/functions/major.js +5 -0
  354. package/node_modules/semver/functions/minor.js +5 -0
  355. package/node_modules/semver/functions/neq.js +5 -0
  356. package/node_modules/semver/functions/parse.js +18 -0
  357. package/node_modules/semver/functions/patch.js +5 -0
  358. package/node_modules/semver/functions/prerelease.js +8 -0
  359. package/node_modules/semver/functions/rcompare.js +5 -0
  360. package/node_modules/semver/functions/rsort.js +5 -0
  361. package/node_modules/semver/functions/satisfies.js +12 -0
  362. package/node_modules/semver/functions/sort.js +5 -0
  363. package/node_modules/semver/functions/valid.js +8 -0
  364. package/node_modules/semver/index.js +91 -0
  365. package/node_modules/semver/internal/constants.js +37 -0
  366. package/node_modules/semver/internal/debug.js +11 -0
  367. package/node_modules/semver/internal/identifiers.js +29 -0
  368. package/node_modules/semver/internal/lrucache.js +42 -0
  369. package/node_modules/semver/internal/parse-options.js +17 -0
  370. package/node_modules/semver/internal/re.js +223 -0
  371. package/node_modules/semver/package.json +78 -0
  372. package/node_modules/semver/preload.js +4 -0
  373. package/node_modules/semver/range.bnf +16 -0
  374. package/node_modules/semver/ranges/gtr.js +6 -0
  375. package/node_modules/semver/ranges/intersects.js +9 -0
  376. package/node_modules/semver/ranges/ltr.js +6 -0
  377. package/node_modules/semver/ranges/max-satisfying.js +27 -0
  378. package/node_modules/semver/ranges/min-satisfying.js +26 -0
  379. package/node_modules/semver/ranges/min-version.js +63 -0
  380. package/node_modules/semver/ranges/outside.js +82 -0
  381. package/node_modules/semver/ranges/simplify.js +49 -0
  382. package/node_modules/semver/ranges/subset.js +249 -0
  383. package/node_modules/semver/ranges/to-comparators.js +10 -0
  384. package/node_modules/semver/ranges/valid.js +13 -0
  385. package/node_modules/simple-concat/.travis.yml +3 -0
  386. package/node_modules/simple-concat/LICENSE +20 -0
  387. package/node_modules/simple-concat/README.md +44 -0
  388. package/node_modules/simple-concat/index.js +15 -0
  389. package/node_modules/simple-concat/package.json +47 -0
  390. package/node_modules/simple-concat/test/basic.js +41 -0
  391. package/node_modules/simple-get/.github/dependabot.yml +15 -0
  392. package/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  393. package/node_modules/simple-get/LICENSE +20 -0
  394. package/node_modules/simple-get/README.md +333 -0
  395. package/node_modules/simple-get/index.js +108 -0
  396. package/node_modules/simple-get/package.json +67 -0
  397. package/node_modules/string_decoder/LICENSE +48 -0
  398. package/node_modules/string_decoder/README.md +47 -0
  399. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  400. package/node_modules/string_decoder/package.json +34 -0
  401. package/node_modules/strip-json-comments/index.js +70 -0
  402. package/node_modules/strip-json-comments/license +21 -0
  403. package/node_modules/strip-json-comments/package.json +42 -0
  404. package/node_modules/strip-json-comments/readme.md +64 -0
  405. package/node_modules/tar-fs/.travis.yml +6 -0
  406. package/node_modules/tar-fs/LICENSE +21 -0
  407. package/node_modules/tar-fs/README.md +165 -0
  408. package/node_modules/tar-fs/index.js +363 -0
  409. package/node_modules/tar-fs/package.json +41 -0
  410. package/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  411. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  412. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  413. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  414. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  415. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  416. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  417. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  418. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  419. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  420. package/node_modules/tar-fs/test/index.js +346 -0
  421. package/node_modules/tar-stream/LICENSE +21 -0
  422. package/node_modules/tar-stream/README.md +168 -0
  423. package/node_modules/tar-stream/extract.js +257 -0
  424. package/node_modules/tar-stream/headers.js +295 -0
  425. package/node_modules/tar-stream/index.js +2 -0
  426. package/node_modules/tar-stream/pack.js +255 -0
  427. package/node_modules/tar-stream/package.json +58 -0
  428. package/node_modules/tar-stream/sandbox.js +11 -0
  429. package/node_modules/tunnel-agent/LICENSE +55 -0
  430. package/node_modules/tunnel-agent/README.md +4 -0
  431. package/node_modules/tunnel-agent/index.js +244 -0
  432. package/node_modules/tunnel-agent/package.json +22 -0
  433. package/node_modules/util-deprecate/History.md +16 -0
  434. package/node_modules/util-deprecate/LICENSE +24 -0
  435. package/node_modules/util-deprecate/README.md +53 -0
  436. package/node_modules/util-deprecate/browser.js +67 -0
  437. package/node_modules/util-deprecate/node.js +6 -0
  438. package/node_modules/util-deprecate/package.json +27 -0
  439. package/package.json +3 -13
@@ -0,0 +1,296 @@
1
+ #include <Security/Security.h>
2
+ #include "keytar.h"
3
+ #include "credentials.h"
4
+
5
+
6
+ namespace keytar {
7
+
8
+ /**
9
+ * Converts a CFString to a std::string
10
+ *
11
+ * This either uses CFStringGetCStringPtr or (if that fails)
12
+ * CFStringGetCString, trying to be as efficient as possible.
13
+ */
14
+ const std::string CFStringToStdString(CFStringRef cfstring) {
15
+ const char* cstr = CFStringGetCStringPtr(cfstring, kCFStringEncodingUTF8);
16
+
17
+ if (cstr != NULL) {
18
+ return std::string(cstr);
19
+ }
20
+
21
+ CFIndex length = CFStringGetLength(cfstring);
22
+ // Worst case: 2 bytes per character + NUL
23
+ CFIndex cstrPtrLen = length * 2 + 1;
24
+ char* cstrPtr = static_cast<char*>(malloc(cstrPtrLen));
25
+
26
+ Boolean result = CFStringGetCString(cfstring,
27
+ cstrPtr,
28
+ cstrPtrLen,
29
+ kCFStringEncodingUTF8);
30
+
31
+ std::string stdstring;
32
+ if (result) {
33
+ stdstring = std::string(cstrPtr);
34
+ }
35
+
36
+ free(cstrPtr);
37
+
38
+ return stdstring;
39
+ }
40
+
41
+ const std::string errorStatusToString(OSStatus status) {
42
+ std::string errorStr;
43
+ CFStringRef errorMessageString = SecCopyErrorMessageString(status, NULL);
44
+
45
+ const char* errorCStringPtr = CFStringGetCStringPtr(errorMessageString,
46
+ kCFStringEncodingUTF8);
47
+ if (errorCStringPtr) {
48
+ errorStr = std::string(errorCStringPtr);
49
+ } else {
50
+ errorStr = std::string("An unknown error occurred.");
51
+ }
52
+
53
+ CFRelease(errorMessageString);
54
+ return errorStr;
55
+ }
56
+
57
+ KEYTAR_OP_RESULT AddPassword(const std::string& service,
58
+ const std::string& account,
59
+ const std::string& password,
60
+ std::string* error) {
61
+ OSStatus status = SecKeychainAddGenericPassword(NULL,
62
+ service.length(),
63
+ service.data(),
64
+ account.length(),
65
+ account.data(),
66
+ password.length(),
67
+ password.data(),
68
+ NULL);
69
+
70
+ if (status != errSecSuccess) {
71
+ *error = errorStatusToString(status);
72
+ return FAIL_ERROR;
73
+ }
74
+
75
+ return SUCCESS;
76
+ }
77
+
78
+ KEYTAR_OP_RESULT SetPassword(const std::string& service,
79
+ const std::string& account,
80
+ const std::string& password,
81
+ std::string* error) {
82
+ SecKeychainItemRef item;
83
+ OSStatus result = SecKeychainFindGenericPassword(NULL,
84
+ service.length(),
85
+ service.data(),
86
+ account.length(),
87
+ account.data(),
88
+ NULL,
89
+ NULL,
90
+ &item);
91
+
92
+ if (result == errSecItemNotFound) {
93
+ return AddPassword(service, account, password, error);
94
+ } else if (result != errSecSuccess) {
95
+ *error = errorStatusToString(result);
96
+ return FAIL_ERROR;
97
+ }
98
+
99
+ result = SecKeychainItemModifyAttributesAndData(item,
100
+ NULL,
101
+ password.length(),
102
+ password.data());
103
+ CFRelease(item);
104
+ if (result != errSecSuccess) {
105
+ *error = errorStatusToString(result);
106
+ return FAIL_ERROR;
107
+ }
108
+
109
+ return SUCCESS;
110
+ }
111
+
112
+ KEYTAR_OP_RESULT GetPassword(const std::string& service,
113
+ const std::string& account,
114
+ std::string* password,
115
+ std::string* error) {
116
+ void *data;
117
+ UInt32 length;
118
+ OSStatus status = SecKeychainFindGenericPassword(NULL,
119
+ service.length(),
120
+ service.data(),
121
+ account.length(),
122
+ account.data(),
123
+ &length,
124
+ &data,
125
+ NULL);
126
+
127
+ if (status == errSecItemNotFound) {
128
+ return FAIL_NONFATAL;
129
+ } else if (status != errSecSuccess) {
130
+ *error = errorStatusToString(status);
131
+ return FAIL_ERROR;
132
+ }
133
+
134
+ *password = std::string(reinterpret_cast<const char*>(data), length);
135
+ SecKeychainItemFreeContent(NULL, data);
136
+ return SUCCESS;
137
+ }
138
+
139
+ KEYTAR_OP_RESULT DeletePassword(const std::string& service,
140
+ const std::string& account,
141
+ std::string* error) {
142
+ SecKeychainItemRef item;
143
+ OSStatus status = SecKeychainFindGenericPassword(NULL,
144
+ service.length(),
145
+ service.data(),
146
+ account.length(),
147
+ account.data(),
148
+ NULL,
149
+ NULL,
150
+ &item);
151
+ if (status == errSecItemNotFound) {
152
+ // Item could not be found, so already deleted.
153
+ return FAIL_NONFATAL;
154
+ } else if (status != errSecSuccess) {
155
+ *error = errorStatusToString(status);
156
+ return FAIL_ERROR;
157
+ }
158
+
159
+ status = SecKeychainItemDelete(item);
160
+ CFRelease(item);
161
+ if (status != errSecSuccess) {
162
+ *error = errorStatusToString(status);
163
+ return FAIL_ERROR;
164
+ }
165
+
166
+ return SUCCESS;
167
+ }
168
+
169
+ KEYTAR_OP_RESULT FindPassword(const std::string& service,
170
+ std::string* password,
171
+ std::string* error) {
172
+ SecKeychainItemRef item;
173
+ void *data;
174
+ UInt32 length;
175
+
176
+ OSStatus status = SecKeychainFindGenericPassword(NULL,
177
+ service.length(),
178
+ service.data(),
179
+ 0,
180
+ NULL,
181
+ &length,
182
+ &data,
183
+ &item);
184
+ if (status == errSecItemNotFound) {
185
+ return FAIL_NONFATAL;
186
+ } else if (status != errSecSuccess) {
187
+ *error = errorStatusToString(status);
188
+ return FAIL_ERROR;
189
+ }
190
+
191
+ *password = std::string(reinterpret_cast<const char*>(data), length);
192
+ SecKeychainItemFreeContent(NULL, data);
193
+ CFRelease(item);
194
+ return SUCCESS;
195
+ }
196
+
197
+ Credentials getCredentialsForItem(CFDictionaryRef item) {
198
+ CFStringRef service = (CFStringRef) CFDictionaryGetValue(item,
199
+ kSecAttrService);
200
+ CFStringRef account = (CFStringRef) CFDictionaryGetValue(item,
201
+ kSecAttrAccount);
202
+
203
+ CFMutableDictionaryRef query = CFDictionaryCreateMutable(
204
+ NULL,
205
+ 0,
206
+ &kCFTypeDictionaryKeyCallBacks,
207
+ &kCFTypeDictionaryValueCallBacks);
208
+
209
+ CFDictionaryAddValue(query, kSecAttrService, service);
210
+ CFDictionaryAddValue(query, kSecClass, kSecClassGenericPassword);
211
+ CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitOne);
212
+ CFDictionaryAddValue(query, kSecReturnAttributes, kCFBooleanTrue);
213
+ CFDictionaryAddValue(query, kSecReturnData, kCFBooleanTrue);
214
+ CFDictionaryAddValue(query, kSecAttrAccount, account);
215
+
216
+ Credentials cred;
217
+ CFTypeRef result = NULL;
218
+ OSStatus status = SecItemCopyMatching((CFDictionaryRef) query, &result);
219
+
220
+ CFRelease(query);
221
+
222
+ if (status == errSecSuccess) {
223
+ CFDataRef passwordData = (CFDataRef) CFDictionaryGetValue(
224
+ (CFDictionaryRef) result,
225
+ CFSTR("v_Data"));
226
+ CFStringRef password = CFStringCreateFromExternalRepresentation(
227
+ NULL,
228
+ passwordData,
229
+ kCFStringEncodingUTF8);
230
+
231
+ cred = Credentials(
232
+ CFStringToStdString(account),
233
+ CFStringToStdString(password));
234
+
235
+ CFRelease(password);
236
+ }
237
+
238
+ if (result != NULL) {
239
+ CFRelease(result);
240
+ }
241
+
242
+ return cred;
243
+ }
244
+
245
+ KEYTAR_OP_RESULT FindCredentials(const std::string& service,
246
+ std::vector<Credentials>* credentials,
247
+ std::string* error) {
248
+ CFStringRef serviceStr = CFStringCreateWithCString(
249
+ NULL,
250
+ service.c_str(),
251
+ kCFStringEncodingUTF8);
252
+
253
+ CFMutableDictionaryRef query = CFDictionaryCreateMutable(
254
+ NULL,
255
+ 0,
256
+ &kCFTypeDictionaryKeyCallBacks,
257
+ &kCFTypeDictionaryValueCallBacks);
258
+ CFDictionaryAddValue(query, kSecClass, kSecClassGenericPassword);
259
+ CFDictionaryAddValue(query, kSecAttrService, serviceStr);
260
+ CFDictionaryAddValue(query, kSecMatchLimit, kSecMatchLimitAll);
261
+ CFDictionaryAddValue(query, kSecReturnRef, kCFBooleanTrue);
262
+ CFDictionaryAddValue(query, kSecReturnAttributes, kCFBooleanTrue);
263
+
264
+ CFTypeRef result = NULL;
265
+ OSStatus status = SecItemCopyMatching((CFDictionaryRef) query, &result);
266
+
267
+ CFRelease(serviceStr);
268
+ CFRelease(query);
269
+
270
+ if (status == errSecSuccess) {
271
+ CFArrayRef resultArray = (CFArrayRef) result;
272
+ int resultCount = CFArrayGetCount(resultArray);
273
+
274
+ for (int idx = 0; idx < resultCount; idx++) {
275
+ CFDictionaryRef item = (CFDictionaryRef) CFArrayGetValueAtIndex(
276
+ resultArray,
277
+ idx);
278
+
279
+ Credentials cred = getCredentialsForItem(item);
280
+ credentials->push_back(cred);
281
+ }
282
+ } else if (status == errSecItemNotFound) {
283
+ return FAIL_NONFATAL;
284
+ } else {
285
+ *error = errorStatusToString(status);
286
+ return FAIL_ERROR;
287
+ }
288
+
289
+ if (result != NULL) {
290
+ CFRelease(result);
291
+ }
292
+
293
+ return SUCCESS;
294
+ }
295
+
296
+ } // namespace keytar
@@ -0,0 +1,184 @@
1
+ #include "keytar.h"
2
+
3
+ // This is needed to make the builds on Ubuntu 14.04 / libsecret v0.16 work.
4
+ // The API we use has already stabilized.
5
+ #define SECRET_API_SUBJECT_TO_CHANGE
6
+ #include <libsecret/secret.h>
7
+ #include <stdio.h>
8
+ #include <string.h>
9
+
10
+ namespace keytar {
11
+
12
+ namespace {
13
+
14
+ static const SecretSchema schema = {
15
+ "org.freedesktop.Secret.Generic", SECRET_SCHEMA_NONE, {
16
+ { "service", SECRET_SCHEMA_ATTRIBUTE_STRING },
17
+ { "account", SECRET_SCHEMA_ATTRIBUTE_STRING }
18
+ }
19
+ };
20
+
21
+ } // namespace
22
+
23
+ KEYTAR_OP_RESULT SetPassword(const std::string& service,
24
+ const std::string& account,
25
+ const std::string& password,
26
+ std::string* errStr) {
27
+ GError* error = NULL;
28
+
29
+ secret_password_store_sync(
30
+ &schema, // The schema.
31
+ SECRET_COLLECTION_DEFAULT, // Default collection.
32
+ (service + "/" + account).c_str(), // The label.
33
+ password.c_str(), // The password.
34
+ NULL, // Cancellable. (unneeded)
35
+ &error, // Reference to the error.
36
+ "service", service.c_str(),
37
+ "account", account.c_str(),
38
+ NULL); // End of arguments.
39
+
40
+ if (error != NULL) {
41
+ *errStr = std::string(error->message);
42
+ g_error_free(error);
43
+ return FAIL_ERROR;
44
+ }
45
+
46
+ return SUCCESS;
47
+ }
48
+
49
+ KEYTAR_OP_RESULT GetPassword(const std::string& service,
50
+ const std::string& account,
51
+ std::string* password,
52
+ std::string* errStr) {
53
+ GError* error = NULL;
54
+
55
+ gchar* raw_password = secret_password_lookup_sync(
56
+ &schema, // The schema.
57
+ NULL, // Cancellable. (unneeded)
58
+ &error, // Reference to the error.
59
+ "service", service.c_str(),
60
+ "account", account.c_str(),
61
+ NULL); // End of arguments.
62
+
63
+ if (error != NULL) {
64
+ *errStr = std::string(error->message);
65
+ g_error_free(error);
66
+ return FAIL_ERROR;
67
+ }
68
+
69
+ if (raw_password == NULL)
70
+ return FAIL_NONFATAL;
71
+
72
+ *password = raw_password;
73
+ secret_password_free(raw_password);
74
+ return SUCCESS;
75
+ }
76
+
77
+ KEYTAR_OP_RESULT DeletePassword(const std::string& service,
78
+ const std::string& account,
79
+ std::string* errStr) {
80
+ GError* error = NULL;
81
+
82
+ gboolean result = secret_password_clear_sync(
83
+ &schema, // The schema.
84
+ NULL, // Cancellable. (unneeded)
85
+ &error, // Reference to the error.
86
+ "service", service.c_str(),
87
+ "account", account.c_str(),
88
+ NULL); // End of arguments.
89
+
90
+ if (error != NULL) {
91
+ *errStr = std::string(error->message);
92
+ g_error_free(error);
93
+ return FAIL_ERROR;
94
+ }
95
+
96
+ if (!result)
97
+ return FAIL_NONFATAL;
98
+
99
+ return SUCCESS;
100
+ }
101
+
102
+ KEYTAR_OP_RESULT FindPassword(const std::string& service,
103
+ std::string* password,
104
+ std::string* errStr) {
105
+ GError* error = NULL;
106
+
107
+ gchar* raw_password = secret_password_lookup_sync(
108
+ &schema, // The schema.
109
+ NULL, // Cancellable. (unneeded)
110
+ &error, // Reference to the error.
111
+ "service", service.c_str(),
112
+ NULL); // End of arguments.
113
+
114
+ if (error != NULL) {
115
+ *errStr = std::string(error->message);
116
+ g_error_free(error);
117
+ return FAIL_ERROR;
118
+ }
119
+
120
+ if (raw_password == NULL)
121
+ return FAIL_NONFATAL;
122
+
123
+ *password = raw_password;
124
+ secret_password_free(raw_password);
125
+ return SUCCESS;
126
+ }
127
+
128
+ KEYTAR_OP_RESULT FindCredentials(const std::string& service,
129
+ std::vector<Credentials>* credentials,
130
+ std::string* errStr) {
131
+ GError* error = NULL;
132
+
133
+ GHashTable* attributes = g_hash_table_new(NULL, NULL);
134
+ g_hash_table_replace(attributes,
135
+ (gpointer) "service",
136
+ (gpointer) service.c_str());
137
+
138
+ GList* items = secret_service_search_sync(
139
+ NULL,
140
+ &schema, // The schema.
141
+ attributes,
142
+ static_cast<SecretSearchFlags>(SECRET_SEARCH_ALL | SECRET_SEARCH_UNLOCK |
143
+ SECRET_SEARCH_LOAD_SECRETS),
144
+ NULL, // Cancellable. (unneeded)
145
+ &error); // Reference to the error.
146
+
147
+ g_hash_table_destroy(attributes);
148
+
149
+ if (error != NULL) {
150
+ *errStr = std::string(error->message);
151
+ g_error_free(error);
152
+ return FAIL_ERROR;
153
+ }
154
+
155
+ GList* current = items;
156
+ for (current = items; current != NULL; current = current->next) {
157
+ SecretItem* item = reinterpret_cast<SecretItem*>(current->data);
158
+
159
+ GHashTable* itemAttrs = secret_item_get_attributes(item);
160
+ char* account = strdup(
161
+ reinterpret_cast<char*>(g_hash_table_lookup(itemAttrs, "account")));
162
+
163
+ SecretValue* secret = secret_item_get_secret(item);
164
+ char* password = strdup(secret_value_get_text(secret));
165
+
166
+ if (account == NULL || password == NULL) {
167
+ if (account)
168
+ free(account);
169
+
170
+ if (password)
171
+ free(password);
172
+
173
+ continue;
174
+ }
175
+
176
+ credentials->push_back(Credentials(account, password));
177
+ free(account);
178
+ free(password);
179
+ }
180
+
181
+ return SUCCESS;
182
+ }
183
+
184
+ } // namespace keytar