fattureincloud_ruby_sdk 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (741) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile +9 -0
  4. data/LICENSE +21 -0
  5. data/README.md +421 -0
  6. data/Rakefile +10 -0
  7. data/docs/ArchiveApi.md +464 -0
  8. data/docs/ArchiveDocument.md +13 -0
  9. data/docs/CashbookApi.md +388 -0
  10. data/docs/CashbookEntry.md +49 -0
  11. data/docs/CashbookEntryData.md +14 -0
  12. data/docs/CashbookEntryDataDocument.md +10 -0
  13. data/docs/CashbookEntryIn.md +16 -0
  14. data/docs/CashbookEntryInData.md +9 -0
  15. data/docs/CashbookEntryInOut.md +18 -0
  16. data/docs/CashbookEntryKind.md +7 -0
  17. data/docs/CashbookEntryOut.md +16 -0
  18. data/docs/CashbookEntryOutData.md +9 -0
  19. data/docs/CashbookEntryType.md +7 -0
  20. data/docs/City.md +10 -0
  21. data/docs/Client.md +39 -0
  22. data/docs/ClientType.md +7 -0
  23. data/docs/ClientsApi.md +388 -0
  24. data/docs/CompaniesApi.md +77 -0
  25. data/docs/Company.md +14 -0
  26. data/docs/CompanyInfo.md +15 -0
  27. data/docs/CompanyInfoAccessInfo.md +10 -0
  28. data/docs/CompanyInfoPlanInfo.md +10 -0
  29. data/docs/CompanyInfoPlanInfoFunctions.md +25 -0
  30. data/docs/CompanyInfoPlanInfoFunctionsStatus.md +9 -0
  31. data/docs/CompanyInfoPlanInfoLimits.md +11 -0
  32. data/docs/CompanyType.md +7 -0
  33. data/docs/CreateArchiveDocumentRequest.md +8 -0
  34. data/docs/CreateArchiveDocumentResponse.md +8 -0
  35. data/docs/CreateCashbookEntryRequest.md +8 -0
  36. data/docs/CreateCashbookEntryResponse.md +8 -0
  37. data/docs/CreateClientRequest.md +8 -0
  38. data/docs/CreateClientResponse.md +8 -0
  39. data/docs/CreateF24Request.md +8 -0
  40. data/docs/CreateF24Response.md +8 -0
  41. data/docs/CreateIssuedDocumentRequest.md +8 -0
  42. data/docs/CreateIssuedDocumentResponse.md +8 -0
  43. data/docs/CreatePaymentAccountRequest.md +8 -0
  44. data/docs/CreatePaymentAccountResponse.md +8 -0
  45. data/docs/CreatePaymentMethodRequest.md +8 -0
  46. data/docs/CreatePaymentMethodResponse.md +8 -0
  47. data/docs/CreateProductRequest.md +8 -0
  48. data/docs/CreateProductResponse.md +8 -0
  49. data/docs/CreateReceiptRequest.md +9 -0
  50. data/docs/CreateReceiptResponse.md +8 -0
  51. data/docs/CreateReceivedDocumentRequest.md +9 -0
  52. data/docs/CreateReceivedDocumentResponse.md +8 -0
  53. data/docs/CreateSupplierRequest.md +8 -0
  54. data/docs/CreateSupplierResponse.md +8 -0
  55. data/docs/CreateVatTypeRequest.md +8 -0
  56. data/docs/CreateVatTypeResponse.md +8 -0
  57. data/docs/Currency.md +11 -0
  58. data/docs/DefaultPaymentTermsType.md +7 -0
  59. data/docs/DocumentTemplate.md +10 -0
  60. data/docs/EmailData.md +18 -0
  61. data/docs/EmailDataDefaultSenderEmail.md +9 -0
  62. data/docs/EmailDataSenderEmailsList.md +9 -0
  63. data/docs/EmailSchedule.md +15 -0
  64. data/docs/EmailScheduleInclude.md +11 -0
  65. data/docs/Entity.md +49 -0
  66. data/docs/F24.md +15 -0
  67. data/docs/F24Status.md +7 -0
  68. data/docs/FunctionStatus.md +8 -0
  69. data/docs/GetArchiveDocumentResponse.md +8 -0
  70. data/docs/GetCashbookEntryResponse.md +8 -0
  71. data/docs/GetClientResponse.md +8 -0
  72. data/docs/GetCompanyInfoResponse.md +8 -0
  73. data/docs/GetEmailDataResponse.md +8 -0
  74. data/docs/GetExistingIssuedDocumentTotalsRequest.md +8 -0
  75. data/docs/GetExistingIssuedDocumentTotalsResponse.md +8 -0
  76. data/docs/GetExistingReceivedDocumentTotalsRequest.md +8 -0
  77. data/docs/GetExistingReceivedDocumentTotalsResponse.md +8 -0
  78. data/docs/GetF24Response.md +8 -0
  79. data/docs/GetIssuedDocumentPreCreateInfoResponse.md +8 -0
  80. data/docs/GetIssuedDocumentResponse.md +8 -0
  81. data/docs/GetNewIssuedDocumentTotalsRequest.md +8 -0
  82. data/docs/GetNewIssuedDocumentTotalsResponse.md +8 -0
  83. data/docs/GetNewReceivedDocumentTotalsRequest.md +8 -0
  84. data/docs/GetNewReceivedDocumentTotalsResponse.md +8 -0
  85. data/docs/GetPaymentAccountResponse.md +8 -0
  86. data/docs/GetPaymentMethodResponse.md +8 -0
  87. data/docs/GetProductResponse.md +8 -0
  88. data/docs/GetReceiptPreCreateInfoResponse.md +8 -0
  89. data/docs/GetReceiptResponse.md +8 -0
  90. data/docs/GetReceiptsMonthlyTotalsResponse.md +8 -0
  91. data/docs/GetReceivedDocumentPreCreateInfoResponse.md +8 -0
  92. data/docs/GetReceivedDocumentResponse.md +8 -0
  93. data/docs/GetSupplierResponse.md +8 -0
  94. data/docs/GetUserInfoResponse.md +10 -0
  95. data/docs/GetUserInfoResponseEmailConfirmationState.md +8 -0
  96. data/docs/GetUserInfoResponseInfo.md +10 -0
  97. data/docs/GetVatTypeResponse.md +8 -0
  98. data/docs/InfoApi.md +1072 -0
  99. data/docs/IssuedDocument.md +84 -0
  100. data/docs/IssuedDocumentEiData.md +19 -0
  101. data/docs/IssuedDocumentExtraData.md +20 -0
  102. data/docs/IssuedDocumentItemsList.md +23 -0
  103. data/docs/IssuedDocumentPaymentsList.md +13 -0
  104. data/docs/IssuedDocumentPreCreateInfo.md +20 -0
  105. data/docs/IssuedDocumentPreCreateInfoDefaultValues.md +18 -0
  106. data/docs/IssuedDocumentPreCreateInfoExtraDataDefaultValues.md +11 -0
  107. data/docs/IssuedDocumentPreCreateInfoItemsDefaultValues.md +8 -0
  108. data/docs/IssuedDocumentRefersTo.md +12 -0
  109. data/docs/IssuedDocumentStatus.md +7 -0
  110. data/docs/IssuedDocumentTotals.md +24 -0
  111. data/docs/IssuedDocumentTotalsVatList.md +8 -0
  112. data/docs/IssuedDocumentTotalsVatListVatItem.md +9 -0
  113. data/docs/IssuedDocumentType.md +7 -0
  114. data/docs/IssuedDocumentsApi.md +906 -0
  115. data/docs/IssuedEInvoicesApi.md +155 -0
  116. data/docs/Language.md +9 -0
  117. data/docs/ListArchiveCategoriesResponse.md +8 -0
  118. data/docs/ListArchiveDocumentsResponse.md +19 -0
  119. data/docs/ListArchiveDocumentsResponsePage.md +8 -0
  120. data/docs/ListCashbookEntriesResponse.md +8 -0
  121. data/docs/ListCitiesResponse.md +8 -0
  122. data/docs/ListClientsResponse.md +19 -0
  123. data/docs/ListClientsResponsePage.md +8 -0
  124. data/docs/ListCostCentersResponse.md +8 -0
  125. data/docs/ListCountriesResponse.md +8 -0
  126. data/docs/ListCurrenciesResponse.md +8 -0
  127. data/docs/ListDeliveryNotesDefaultCausalsResponse.md +8 -0
  128. data/docs/ListF24Response.md +20 -0
  129. data/docs/ListF24ResponseAggregatedData.md +8 -0
  130. data/docs/ListF24ResponseAggregatedDataAggregatedData.md +8 -0
  131. data/docs/ListF24ResponsePage.md +8 -0
  132. data/docs/ListIssuedDocumentsResponse.md +19 -0
  133. data/docs/ListIssuedDocumentsResponsePage.md +8 -0
  134. data/docs/ListLanguagesResponse.md +8 -0
  135. data/docs/ListPaymentAccountsResponse.md +8 -0
  136. data/docs/ListPaymentMethodsResponse.md +8 -0
  137. data/docs/ListProductCategoriesResponse.md +8 -0
  138. data/docs/ListProductsResponse.md +19 -0
  139. data/docs/ListProductsResponsePage.md +8 -0
  140. data/docs/ListReceiptsResponse.md +19 -0
  141. data/docs/ListReceiptsResponsePage.md +8 -0
  142. data/docs/ListReceivedDocumentCategoriesResponse.md +8 -0
  143. data/docs/ListReceivedDocumentsResponse.md +19 -0
  144. data/docs/ListReceivedDocumentsResponsePage.md +8 -0
  145. data/docs/ListRevenueCentersResponse.md +8 -0
  146. data/docs/ListSuppliersResponse.md +19 -0
  147. data/docs/ListSuppliersResponsePage.md +8 -0
  148. data/docs/ListTemplatesResponse.md +8 -0
  149. data/docs/ListUnitsOfMeasureResponse.md +8 -0
  150. data/docs/ListUserCompaniesResponse.md +8 -0
  151. data/docs/ListUserCompaniesResponseData.md +8 -0
  152. data/docs/ListVatTypesResponse.md +8 -0
  153. data/docs/ModifyArchiveDocumentRequest.md +8 -0
  154. data/docs/ModifyArchiveDocumentResponse.md +8 -0
  155. data/docs/ModifyCashbookEntryRequest.md +8 -0
  156. data/docs/ModifyCashbookEntryResponse.md +8 -0
  157. data/docs/ModifyClientRequest.md +8 -0
  158. data/docs/ModifyClientResponse.md +8 -0
  159. data/docs/ModifyF24Request.md +8 -0
  160. data/docs/ModifyF24Response.md +8 -0
  161. data/docs/ModifyIssuedDocumentRequest.md +8 -0
  162. data/docs/ModifyIssuedDocumentResponse.md +8 -0
  163. data/docs/ModifyPaymentAccountRequest.md +8 -0
  164. data/docs/ModifyPaymentAccountResponse.md +8 -0
  165. data/docs/ModifyPaymentMethodRequest.md +8 -0
  166. data/docs/ModifyPaymentMethodResponse.md +8 -0
  167. data/docs/ModifyProductRequest.md +8 -0
  168. data/docs/ModifyProductResponse.md +8 -0
  169. data/docs/ModifyReceiptRequest.md +8 -0
  170. data/docs/ModifyReceiptResponse.md +8 -0
  171. data/docs/ModifyReceivedDocumentRequest.md +8 -0
  172. data/docs/ModifyReceivedDocumentResponse.md +8 -0
  173. data/docs/ModifySupplierRequest.md +8 -0
  174. data/docs/ModifySupplierResponse.md +8 -0
  175. data/docs/ModifyVatTypeRequest.md +8 -0
  176. data/docs/ModifyVatTypeResponse.md +8 -0
  177. data/docs/MonthlyTotal.md +10 -0
  178. data/docs/OriginalDocumentType.md +7 -0
  179. data/docs/Pagination.md +18 -0
  180. data/docs/PaymentAccount.md +14 -0
  181. data/docs/PaymentAccountType.md +7 -0
  182. data/docs/PaymentMethod.md +17 -0
  183. data/docs/PaymentMethodDetails.md +9 -0
  184. data/docs/PaymentMethodType.md +7 -0
  185. data/docs/PermissionLevel.md +7 -0
  186. data/docs/Permissions.md +32 -0
  187. data/docs/PermissionsFicIssuedDocumentsDetailed.md +17 -0
  188. data/docs/Product.md +26 -0
  189. data/docs/ProductsApi.md +388 -0
  190. data/docs/Receipt.md +22 -0
  191. data/docs/ReceiptItemsListItem.md +12 -0
  192. data/docs/ReceiptPreCreateInfo.md +13 -0
  193. data/docs/ReceiptType.md +7 -0
  194. data/docs/ReceiptsApi.md +532 -0
  195. data/docs/ReceivedDocument.md +33 -0
  196. data/docs/ReceivedDocumentEntity.md +9 -0
  197. data/docs/ReceivedDocumentInfo.md +14 -0
  198. data/docs/ReceivedDocumentInfoDefaultValues.md +8 -0
  199. data/docs/ReceivedDocumentInfoItemsDefaultValues.md +8 -0
  200. data/docs/ReceivedDocumentItemsList.md +17 -0
  201. data/docs/ReceivedDocumentPaymentTerms.md +9 -0
  202. data/docs/ReceivedDocumentPaymentsList.md +14 -0
  203. data/docs/ReceivedDocumentTotals.md +14 -0
  204. data/docs/ReceivedDocumentType.md +7 -0
  205. data/docs/ReceivedDocumentsApi.md +759 -0
  206. data/docs/ScheduleEmailRequest.md +8 -0
  207. data/docs/SendEInvoiceRequest.md +8 -0
  208. data/docs/SendEInvoiceRequestData.md +9 -0
  209. data/docs/SendEInvoiceResponse.md +8 -0
  210. data/docs/SendEInvoiceResponseData.md +9 -0
  211. data/docs/SettingsApi.md +898 -0
  212. data/docs/ShowTotalsMode.md +7 -0
  213. data/docs/Supplier.md +29 -0
  214. data/docs/SupplierType.md +7 -0
  215. data/docs/SuppliersApi.md +388 -0
  216. data/docs/TaxesApi.md +535 -0
  217. data/docs/UploadArchiveAttachmentResponse.md +8 -0
  218. data/docs/UploadF24AttachmentResponse.md +8 -0
  219. data/docs/UploadIssuedDocumentAttachmentResponse.md +8 -0
  220. data/docs/UploadIssuedDocumentAttachmentResponseData.md +8 -0
  221. data/docs/UploadReceivedDocumentAttachmentResponse.md +8 -0
  222. data/docs/UploadReceivedDocumentAttachmentResponseData.md +8 -0
  223. data/docs/User.md +14 -0
  224. data/docs/UserApi.md +141 -0
  225. data/docs/UserCompanyRole.md +7 -0
  226. data/docs/VatKind.md +7 -0
  227. data/docs/VatType.md +16 -0
  228. data/docs/VerifyEInvoiceXmlErrorResponse.md +9 -0
  229. data/docs/VerifyEInvoiceXmlErrorResponseError.md +9 -0
  230. data/docs/VerifyEInvoiceXmlErrorResponseExtra.md +8 -0
  231. data/docs/VerifyEInvoiceXmlResponse.md +8 -0
  232. data/docs/VerifyEInvoiceXmlResponseData.md +8 -0
  233. data/fattureincloud_ruby_sdk.gemspec +38 -0
  234. data/lib/fattureincloud_ruby_sdk/api/archive_api.rb +470 -0
  235. data/lib/fattureincloud_ruby_sdk/api/cashbook_api.rb +404 -0
  236. data/lib/fattureincloud_ruby_sdk/api/clients_api.rb +396 -0
  237. data/lib/fattureincloud_ruby_sdk/api/companies_api.rb +85 -0
  238. data/lib/fattureincloud_ruby_sdk/api/info_api.rb +986 -0
  239. data/lib/fattureincloud_ruby_sdk/api/issued_documents_api.rb +913 -0
  240. data/lib/fattureincloud_ruby_sdk/api/issued_e_invoices_api.rb +167 -0
  241. data/lib/fattureincloud_ruby_sdk/api/products_api.rb +396 -0
  242. data/lib/fattureincloud_ruby_sdk/api/receipts_api.rb +541 -0
  243. data/lib/fattureincloud_ruby_sdk/api/received_documents_api.rb +770 -0
  244. data/lib/fattureincloud_ruby_sdk/api/settings_api.rb +888 -0
  245. data/lib/fattureincloud_ruby_sdk/api/suppliers_api.rb +396 -0
  246. data/lib/fattureincloud_ruby_sdk/api/taxes_api.rb +537 -0
  247. data/lib/fattureincloud_ruby_sdk/api/user_api.rb +136 -0
  248. data/lib/fattureincloud_ruby_sdk/api_client.rb +390 -0
  249. data/lib/fattureincloud_ruby_sdk/api_error.rb +57 -0
  250. data/lib/fattureincloud_ruby_sdk/configuration.rb +278 -0
  251. data/lib/fattureincloud_ruby_sdk/models/archive_document.rb +284 -0
  252. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry.rb +105 -0
  253. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_data.rb +302 -0
  254. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_data_document.rb +239 -0
  255. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_in.rb +330 -0
  256. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_in_data.rb +229 -0
  257. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_in_out.rb +350 -0
  258. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_kind.rb +40 -0
  259. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_out.rb +330 -0
  260. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_out_data.rb +229 -0
  261. data/lib/fattureincloud_ruby_sdk/models/cashbook_entry_type.rb +37 -0
  262. data/lib/fattureincloud_ruby_sdk/models/city.rb +254 -0
  263. data/lib/fattureincloud_ruby_sdk/models/client.rb +537 -0
  264. data/lib/fattureincloud_ruby_sdk/models/client_type.rb +39 -0
  265. data/lib/fattureincloud_ruby_sdk/models/company.rb +281 -0
  266. data/lib/fattureincloud_ruby_sdk/models/company_info.rb +288 -0
  267. data/lib/fattureincloud_ruby_sdk/models/company_info_access_info.rb +236 -0
  268. data/lib/fattureincloud_ruby_sdk/models/company_info_plan_info.rb +236 -0
  269. data/lib/fattureincloud_ruby_sdk/models/company_info_plan_info_functions.rb +373 -0
  270. data/lib/fattureincloud_ruby_sdk/models/company_info_plan_info_functions_status.rb +227 -0
  271. data/lib/fattureincloud_ruby_sdk/models/company_info_plan_info_limits.rb +246 -0
  272. data/lib/fattureincloud_ruby_sdk/models/company_type.rb +37 -0
  273. data/lib/fattureincloud_ruby_sdk/models/create_archive_document_request.rb +219 -0
  274. data/lib/fattureincloud_ruby_sdk/models/create_archive_document_response.rb +219 -0
  275. data/lib/fattureincloud_ruby_sdk/models/create_cashbook_entry_request.rb +219 -0
  276. data/lib/fattureincloud_ruby_sdk/models/create_cashbook_entry_response.rb +219 -0
  277. data/lib/fattureincloud_ruby_sdk/models/create_client_request.rb +218 -0
  278. data/lib/fattureincloud_ruby_sdk/models/create_client_response.rb +218 -0
  279. data/lib/fattureincloud_ruby_sdk/models/create_f24_request.rb +219 -0
  280. data/lib/fattureincloud_ruby_sdk/models/create_f24_response.rb +219 -0
  281. data/lib/fattureincloud_ruby_sdk/models/create_issued_document_request.rb +218 -0
  282. data/lib/fattureincloud_ruby_sdk/models/create_issued_document_response.rb +218 -0
  283. data/lib/fattureincloud_ruby_sdk/models/create_payment_account_request.rb +219 -0
  284. data/lib/fattureincloud_ruby_sdk/models/create_payment_account_response.rb +219 -0
  285. data/lib/fattureincloud_ruby_sdk/models/create_payment_method_request.rb +218 -0
  286. data/lib/fattureincloud_ruby_sdk/models/create_payment_method_response.rb +218 -0
  287. data/lib/fattureincloud_ruby_sdk/models/create_product_request.rb +218 -0
  288. data/lib/fattureincloud_ruby_sdk/models/create_product_response.rb +218 -0
  289. data/lib/fattureincloud_ruby_sdk/models/create_receipt_request.rb +229 -0
  290. data/lib/fattureincloud_ruby_sdk/models/create_receipt_response.rb +219 -0
  291. data/lib/fattureincloud_ruby_sdk/models/create_received_document_request.rb +234 -0
  292. data/lib/fattureincloud_ruby_sdk/models/create_received_document_response.rb +219 -0
  293. data/lib/fattureincloud_ruby_sdk/models/create_supplier_request.rb +218 -0
  294. data/lib/fattureincloud_ruby_sdk/models/create_supplier_response.rb +218 -0
  295. data/lib/fattureincloud_ruby_sdk/models/create_vat_type_request.rb +219 -0
  296. data/lib/fattureincloud_ruby_sdk/models/create_vat_type_response.rb +219 -0
  297. data/lib/fattureincloud_ruby_sdk/models/currency.rb +251 -0
  298. data/lib/fattureincloud_ruby_sdk/models/default_payment_terms_type.rb +37 -0
  299. data/lib/fattureincloud_ruby_sdk/models/document_template.rb +239 -0
  300. data/lib/fattureincloud_ruby_sdk/models/email_data.rb +376 -0
  301. data/lib/fattureincloud_ruby_sdk/models/email_data_default_sender_email.rb +240 -0
  302. data/lib/fattureincloud_ruby_sdk/models/email_data_sender_emails_list.rb +239 -0
  303. data/lib/fattureincloud_ruby_sdk/models/email_schedule.rb +318 -0
  304. data/lib/fattureincloud_ruby_sdk/models/email_schedule_include.rb +269 -0
  305. data/lib/fattureincloud_ruby_sdk/models/entity.rb +105 -0
  306. data/lib/fattureincloud_ruby_sdk/models/f24.rb +305 -0
  307. data/lib/fattureincloud_ruby_sdk/models/f24_status.rb +38 -0
  308. data/lib/fattureincloud_ruby_sdk/models/function_status.rb +218 -0
  309. data/lib/fattureincloud_ruby_sdk/models/get_archive_document_response.rb +219 -0
  310. data/lib/fattureincloud_ruby_sdk/models/get_cashbook_entry_response.rb +219 -0
  311. data/lib/fattureincloud_ruby_sdk/models/get_client_response.rb +218 -0
  312. data/lib/fattureincloud_ruby_sdk/models/get_company_info_response.rb +219 -0
  313. data/lib/fattureincloud_ruby_sdk/models/get_email_data_response.rb +218 -0
  314. data/lib/fattureincloud_ruby_sdk/models/get_existing_issued_document_totals_request.rb +218 -0
  315. data/lib/fattureincloud_ruby_sdk/models/get_existing_issued_document_totals_response.rb +219 -0
  316. data/lib/fattureincloud_ruby_sdk/models/get_existing_received_document_totals_request.rb +219 -0
  317. data/lib/fattureincloud_ruby_sdk/models/get_existing_received_document_totals_response.rb +219 -0
  318. data/lib/fattureincloud_ruby_sdk/models/get_f24_response.rb +218 -0
  319. data/lib/fattureincloud_ruby_sdk/models/get_issued_document_pre_create_info_response.rb +218 -0
  320. data/lib/fattureincloud_ruby_sdk/models/get_issued_document_response.rb +218 -0
  321. data/lib/fattureincloud_ruby_sdk/models/get_new_issued_document_totals_request.rb +218 -0
  322. data/lib/fattureincloud_ruby_sdk/models/get_new_issued_document_totals_response.rb +219 -0
  323. data/lib/fattureincloud_ruby_sdk/models/get_new_received_document_totals_request.rb +219 -0
  324. data/lib/fattureincloud_ruby_sdk/models/get_new_received_document_totals_response.rb +219 -0
  325. data/lib/fattureincloud_ruby_sdk/models/get_payment_account_response.rb +219 -0
  326. data/lib/fattureincloud_ruby_sdk/models/get_payment_method_response.rb +218 -0
  327. data/lib/fattureincloud_ruby_sdk/models/get_product_response.rb +218 -0
  328. data/lib/fattureincloud_ruby_sdk/models/get_receipt_pre_create_info_response.rb +219 -0
  329. data/lib/fattureincloud_ruby_sdk/models/get_receipt_response.rb +219 -0
  330. data/lib/fattureincloud_ruby_sdk/models/get_receipts_monthly_totals_response.rb +221 -0
  331. data/lib/fattureincloud_ruby_sdk/models/get_received_document_pre_create_info_response.rb +219 -0
  332. data/lib/fattureincloud_ruby_sdk/models/get_received_document_response.rb +219 -0
  333. data/lib/fattureincloud_ruby_sdk/models/get_supplier_response.rb +218 -0
  334. data/lib/fattureincloud_ruby_sdk/models/get_user_info_response.rb +237 -0
  335. data/lib/fattureincloud_ruby_sdk/models/get_user_info_response_email_confirmation_state.rb +218 -0
  336. data/lib/fattureincloud_ruby_sdk/models/get_user_info_response_info.rb +236 -0
  337. data/lib/fattureincloud_ruby_sdk/models/get_vat_type_response.rb +219 -0
  338. data/lib/fattureincloud_ruby_sdk/models/issued_document.rb +1114 -0
  339. data/lib/fattureincloud_ruby_sdk/models/issued_document_ei_data.rb +342 -0
  340. data/lib/fattureincloud_ruby_sdk/models/issued_document_extra_data.rb +342 -0
  341. data/lib/fattureincloud_ruby_sdk/models/issued_document_items_list.rb +400 -0
  342. data/lib/fattureincloud_ruby_sdk/models/issued_document_payments_list.rb +271 -0
  343. data/lib/fattureincloud_ruby_sdk/models/issued_document_pre_create_info.rb +352 -0
  344. data/lib/fattureincloud_ruby_sdk/models/issued_document_pre_create_info_default_values.rb +316 -0
  345. data/lib/fattureincloud_ruby_sdk/models/issued_document_pre_create_info_extra_data_default_values.rb +245 -0
  346. data/lib/fattureincloud_ruby_sdk/models/issued_document_pre_create_info_items_default_values.rb +220 -0
  347. data/lib/fattureincloud_ruby_sdk/models/issued_document_refers_to.rb +260 -0
  348. data/lib/fattureincloud_ruby_sdk/models/issued_document_status.rb +38 -0
  349. data/lib/fattureincloud_ruby_sdk/models/issued_document_totals.rb +408 -0
  350. data/lib/fattureincloud_ruby_sdk/models/issued_document_totals_vat_list.rb +218 -0
  351. data/lib/fattureincloud_ruby_sdk/models/issued_document_totals_vat_list_vat_item.rb +227 -0
  352. data/lib/fattureincloud_ruby_sdk/models/issued_document_type.rb +44 -0
  353. data/lib/fattureincloud_ruby_sdk/models/language.rb +239 -0
  354. data/lib/fattureincloud_ruby_sdk/models/list_archive_categories_response.rb +220 -0
  355. data/lib/fattureincloud_ruby_sdk/models/list_archive_documents_response.rb +343 -0
  356. data/lib/fattureincloud_ruby_sdk/models/list_archive_documents_response_page.rb +220 -0
  357. data/lib/fattureincloud_ruby_sdk/models/list_cashbook_entries_response.rb +221 -0
  358. data/lib/fattureincloud_ruby_sdk/models/list_cities_response.rb +221 -0
  359. data/lib/fattureincloud_ruby_sdk/models/list_clients_response.rb +342 -0
  360. data/lib/fattureincloud_ruby_sdk/models/list_clients_response_page.rb +220 -0
  361. data/lib/fattureincloud_ruby_sdk/models/list_cost_centers_response.rb +220 -0
  362. data/lib/fattureincloud_ruby_sdk/models/list_countries_response.rb +221 -0
  363. data/lib/fattureincloud_ruby_sdk/models/list_currencies_response.rb +221 -0
  364. data/lib/fattureincloud_ruby_sdk/models/list_delivery_notes_default_causals_response.rb +226 -0
  365. data/lib/fattureincloud_ruby_sdk/models/list_f24_response.rb +353 -0
  366. data/lib/fattureincloud_ruby_sdk/models/list_f24_response_aggregated_data.rb +218 -0
  367. data/lib/fattureincloud_ruby_sdk/models/list_f24_response_aggregated_data_aggregated_data.rb +219 -0
  368. data/lib/fattureincloud_ruby_sdk/models/list_f24_response_page.rb +220 -0
  369. data/lib/fattureincloud_ruby_sdk/models/list_issued_documents_response.rb +342 -0
  370. data/lib/fattureincloud_ruby_sdk/models/list_issued_documents_response_page.rb +220 -0
  371. data/lib/fattureincloud_ruby_sdk/models/list_languages_response.rb +221 -0
  372. data/lib/fattureincloud_ruby_sdk/models/list_payment_accounts_response.rb +221 -0
  373. data/lib/fattureincloud_ruby_sdk/models/list_payment_methods_response.rb +221 -0
  374. data/lib/fattureincloud_ruby_sdk/models/list_product_categories_response.rb +221 -0
  375. data/lib/fattureincloud_ruby_sdk/models/list_products_response.rb +342 -0
  376. data/lib/fattureincloud_ruby_sdk/models/list_products_response_page.rb +220 -0
  377. data/lib/fattureincloud_ruby_sdk/models/list_receipts_response.rb +343 -0
  378. data/lib/fattureincloud_ruby_sdk/models/list_receipts_response_page.rb +220 -0
  379. data/lib/fattureincloud_ruby_sdk/models/list_received_document_categories_response.rb +221 -0
  380. data/lib/fattureincloud_ruby_sdk/models/list_received_documents_response.rb +343 -0
  381. data/lib/fattureincloud_ruby_sdk/models/list_received_documents_response_page.rb +220 -0
  382. data/lib/fattureincloud_ruby_sdk/models/list_revenue_centers_response.rb +221 -0
  383. data/lib/fattureincloud_ruby_sdk/models/list_suppliers_response.rb +342 -0
  384. data/lib/fattureincloud_ruby_sdk/models/list_suppliers_response_page.rb +220 -0
  385. data/lib/fattureincloud_ruby_sdk/models/list_templates_response.rb +221 -0
  386. data/lib/fattureincloud_ruby_sdk/models/list_units_of_measure_response.rb +221 -0
  387. data/lib/fattureincloud_ruby_sdk/models/list_user_companies_response.rb +219 -0
  388. data/lib/fattureincloud_ruby_sdk/models/list_user_companies_response_data.rb +220 -0
  389. data/lib/fattureincloud_ruby_sdk/models/list_vat_types_response.rb +221 -0
  390. data/lib/fattureincloud_ruby_sdk/models/modify_archive_document_request.rb +219 -0
  391. data/lib/fattureincloud_ruby_sdk/models/modify_archive_document_response.rb +219 -0
  392. data/lib/fattureincloud_ruby_sdk/models/modify_cashbook_entry_request.rb +219 -0
  393. data/lib/fattureincloud_ruby_sdk/models/modify_cashbook_entry_response.rb +219 -0
  394. data/lib/fattureincloud_ruby_sdk/models/modify_client_request.rb +219 -0
  395. data/lib/fattureincloud_ruby_sdk/models/modify_client_response.rb +218 -0
  396. data/lib/fattureincloud_ruby_sdk/models/modify_f24_request.rb +219 -0
  397. data/lib/fattureincloud_ruby_sdk/models/modify_f24_response.rb +219 -0
  398. data/lib/fattureincloud_ruby_sdk/models/modify_issued_document_request.rb +219 -0
  399. data/lib/fattureincloud_ruby_sdk/models/modify_issued_document_response.rb +218 -0
  400. data/lib/fattureincloud_ruby_sdk/models/modify_payment_account_request.rb +219 -0
  401. data/lib/fattureincloud_ruby_sdk/models/modify_payment_account_response.rb +219 -0
  402. data/lib/fattureincloud_ruby_sdk/models/modify_payment_method_request.rb +218 -0
  403. data/lib/fattureincloud_ruby_sdk/models/modify_payment_method_response.rb +218 -0
  404. data/lib/fattureincloud_ruby_sdk/models/modify_product_request.rb +218 -0
  405. data/lib/fattureincloud_ruby_sdk/models/modify_product_response.rb +218 -0
  406. data/lib/fattureincloud_ruby_sdk/models/modify_receipt_request.rb +219 -0
  407. data/lib/fattureincloud_ruby_sdk/models/modify_receipt_response.rb +219 -0
  408. data/lib/fattureincloud_ruby_sdk/models/modify_received_document_request.rb +219 -0
  409. data/lib/fattureincloud_ruby_sdk/models/modify_received_document_response.rb +219 -0
  410. data/lib/fattureincloud_ruby_sdk/models/modify_supplier_request.rb +218 -0
  411. data/lib/fattureincloud_ruby_sdk/models/modify_supplier_response.rb +218 -0
  412. data/lib/fattureincloud_ruby_sdk/models/modify_vat_type_request.rb +219 -0
  413. data/lib/fattureincloud_ruby_sdk/models/modify_vat_type_response.rb +219 -0
  414. data/lib/fattureincloud_ruby_sdk/models/monthly_total.rb +255 -0
  415. data/lib/fattureincloud_ruby_sdk/models/original_document_type.rb +38 -0
  416. data/lib/fattureincloud_ruby_sdk/models/pagination.rb +324 -0
  417. data/lib/fattureincloud_ruby_sdk/models/payment_account.rb +288 -0
  418. data/lib/fattureincloud_ruby_sdk/models/payment_account_type.rb +37 -0
  419. data/lib/fattureincloud_ruby_sdk/models/payment_method.rb +337 -0
  420. data/lib/fattureincloud_ruby_sdk/models/payment_method_details.rb +229 -0
  421. data/lib/fattureincloud_ruby_sdk/models/payment_method_type.rb +37 -0
  422. data/lib/fattureincloud_ruby_sdk/models/permission_level.rb +39 -0
  423. data/lib/fattureincloud_ruby_sdk/models/permissions.rb +435 -0
  424. data/lib/fattureincloud_ruby_sdk/models/permissions_fic_issued_documents_detailed.rb +299 -0
  425. data/lib/fattureincloud_ruby_sdk/models/product.rb +411 -0
  426. data/lib/fattureincloud_ruby_sdk/models/receipt.rb +371 -0
  427. data/lib/fattureincloud_ruby_sdk/models/receipt_items_list_item.rb +259 -0
  428. data/lib/fattureincloud_ruby_sdk/models/receipt_pre_create_info.rb +310 -0
  429. data/lib/fattureincloud_ruby_sdk/models/receipt_type.rb +37 -0
  430. data/lib/fattureincloud_ruby_sdk/models/received_document.rb +525 -0
  431. data/lib/fattureincloud_ruby_sdk/models/received_document_entity.rb +230 -0
  432. data/lib/fattureincloud_ruby_sdk/models/received_document_info.rb +283 -0
  433. data/lib/fattureincloud_ruby_sdk/models/received_document_info_default_values.rb +219 -0
  434. data/lib/fattureincloud_ruby_sdk/models/received_document_info_items_default_values.rb +221 -0
  435. data/lib/fattureincloud_ruby_sdk/models/received_document_items_list.rb +308 -0
  436. data/lib/fattureincloud_ruby_sdk/models/received_document_payment_terms.rb +228 -0
  437. data/lib/fattureincloud_ruby_sdk/models/received_document_payments_list.rb +278 -0
  438. data/lib/fattureincloud_ruby_sdk/models/received_document_totals.rb +305 -0
  439. data/lib/fattureincloud_ruby_sdk/models/received_document_type.rb +38 -0
  440. data/lib/fattureincloud_ruby_sdk/models/schedule_email_request.rb +219 -0
  441. data/lib/fattureincloud_ruby_sdk/models/send_e_invoice_request.rb +218 -0
  442. data/lib/fattureincloud_ruby_sdk/models/send_e_invoice_request_data.rb +229 -0
  443. data/lib/fattureincloud_ruby_sdk/models/send_e_invoice_response.rb +218 -0
  444. data/lib/fattureincloud_ruby_sdk/models/send_e_invoice_response_data.rb +229 -0
  445. data/lib/fattureincloud_ruby_sdk/models/show_totals_mode.rb +38 -0
  446. data/lib/fattureincloud_ruby_sdk/models/supplier.rb +436 -0
  447. data/lib/fattureincloud_ruby_sdk/models/supplier_type.rb +40 -0
  448. data/lib/fattureincloud_ruby_sdk/models/upload_archive_attachment_response.rb +218 -0
  449. data/lib/fattureincloud_ruby_sdk/models/upload_f24_attachment_response.rb +219 -0
  450. data/lib/fattureincloud_ruby_sdk/models/upload_issued_document_attachment_response.rb +219 -0
  451. data/lib/fattureincloud_ruby_sdk/models/upload_issued_document_attachment_response_data.rb +219 -0
  452. data/lib/fattureincloud_ruby_sdk/models/upload_received_document_attachment_response.rb +224 -0
  453. data/lib/fattureincloud_ruby_sdk/models/upload_received_document_attachment_response_data.rb +224 -0
  454. data/lib/fattureincloud_ruby_sdk/models/user.rb +284 -0
  455. data/lib/fattureincloud_ruby_sdk/models/user_company_role.rb +38 -0
  456. data/lib/fattureincloud_ruby_sdk/models/vat_kind.rb +39 -0
  457. data/lib/fattureincloud_ruby_sdk/models/vat_type.rb +335 -0
  458. data/lib/fattureincloud_ruby_sdk/models/verify_e_invoice_xml_error_response.rb +227 -0
  459. data/lib/fattureincloud_ruby_sdk/models/verify_e_invoice_xml_error_response_error.rb +227 -0
  460. data/lib/fattureincloud_ruby_sdk/models/verify_e_invoice_xml_error_response_extra.rb +220 -0
  461. data/lib/fattureincloud_ruby_sdk/models/verify_e_invoice_xml_response.rb +218 -0
  462. data/lib/fattureincloud_ruby_sdk/models/verify_e_invoice_xml_response_data.rb +219 -0
  463. data/lib/fattureincloud_ruby_sdk/version.rb +15 -0
  464. data/lib/fattureincloud_ruby_sdk.rb +265 -0
  465. data/scripts/.gitignore +2 -0
  466. data/scripts/node_modules/.bin/js-yaml +1 -0
  467. data/scripts/node_modules/.yarn-integrity +17 -0
  468. data/scripts/node_modules/argparse/CHANGELOG.md +216 -0
  469. data/scripts/node_modules/argparse/LICENSE +254 -0
  470. data/scripts/node_modules/argparse/README.md +84 -0
  471. data/scripts/node_modules/argparse/argparse.js +3707 -0
  472. data/scripts/node_modules/argparse/lib/sub.js +67 -0
  473. data/scripts/node_modules/argparse/lib/textwrap.js +440 -0
  474. data/scripts/node_modules/argparse/package.json +31 -0
  475. data/scripts/node_modules/js-yaml/CHANGELOG.md +616 -0
  476. data/scripts/node_modules/js-yaml/LICENSE +21 -0
  477. data/scripts/node_modules/js-yaml/README.md +246 -0
  478. data/scripts/node_modules/js-yaml/bin/js-yaml.js +126 -0
  479. data/scripts/node_modules/js-yaml/dist/js-yaml.js +3874 -0
  480. data/scripts/node_modules/js-yaml/dist/js-yaml.min.js +2 -0
  481. data/scripts/node_modules/js-yaml/dist/js-yaml.mjs +3851 -0
  482. data/scripts/node_modules/js-yaml/index.js +47 -0
  483. data/scripts/node_modules/js-yaml/lib/common.js +59 -0
  484. data/scripts/node_modules/js-yaml/lib/dumper.js +965 -0
  485. data/scripts/node_modules/js-yaml/lib/exception.js +55 -0
  486. data/scripts/node_modules/js-yaml/lib/loader.js +1727 -0
  487. data/scripts/node_modules/js-yaml/lib/schema/core.js +11 -0
  488. data/scripts/node_modules/js-yaml/lib/schema/default.js +22 -0
  489. data/scripts/node_modules/js-yaml/lib/schema/failsafe.js +17 -0
  490. data/scripts/node_modules/js-yaml/lib/schema/json.js +19 -0
  491. data/scripts/node_modules/js-yaml/lib/schema.js +121 -0
  492. data/scripts/node_modules/js-yaml/lib/snippet.js +101 -0
  493. data/scripts/node_modules/js-yaml/lib/type/binary.js +125 -0
  494. data/scripts/node_modules/js-yaml/lib/type/bool.js +35 -0
  495. data/scripts/node_modules/js-yaml/lib/type/float.js +97 -0
  496. data/scripts/node_modules/js-yaml/lib/type/int.js +156 -0
  497. data/scripts/node_modules/js-yaml/lib/type/map.js +8 -0
  498. data/scripts/node_modules/js-yaml/lib/type/merge.js +12 -0
  499. data/scripts/node_modules/js-yaml/lib/type/null.js +35 -0
  500. data/scripts/node_modules/js-yaml/lib/type/omap.js +44 -0
  501. data/scripts/node_modules/js-yaml/lib/type/pairs.js +53 -0
  502. data/scripts/node_modules/js-yaml/lib/type/seq.js +8 -0
  503. data/scripts/node_modules/js-yaml/lib/type/set.js +29 -0
  504. data/scripts/node_modules/js-yaml/lib/type/str.js +8 -0
  505. data/scripts/node_modules/js-yaml/lib/type/timestamp.js +88 -0
  506. data/scripts/node_modules/js-yaml/lib/type.js +66 -0
  507. data/scripts/node_modules/js-yaml/package.json +66 -0
  508. data/scripts/package.json +5 -0
  509. data/scripts/sdk-version-updater.js +13 -0
  510. data/scripts/yarn.lock +15 -0
  511. data/sdk-version.yaml +2 -0
  512. data/spec/api/archive_api_spec.rb +121 -0
  513. data/spec/api/cashbook_api_spec.rb +107 -0
  514. data/spec/api/clients_api_spec.rb +107 -0
  515. data/spec/api/companies_api_spec.rb +47 -0
  516. data/spec/api/info_api_spec.rb +220 -0
  517. data/spec/api/issued_documents_api_spec.rb +202 -0
  518. data/spec/api/issued_e_invoices_api_spec.rb +62 -0
  519. data/spec/api/products_api_spec.rb +107 -0
  520. data/spec/api/receipts_api_spec.rb +133 -0
  521. data/spec/api/received_documents_api_spec.rb +175 -0
  522. data/spec/api/settings_api_spec.rb +198 -0
  523. data/spec/api/suppliers_api_spec.rb +107 -0
  524. data/spec/api/taxes_api_spec.rb +134 -0
  525. data/spec/api/user_api_spec.rb +57 -0
  526. data/spec/api_client_spec.rb +226 -0
  527. data/spec/configuration_spec.rb +42 -0
  528. data/spec/models/archive_document_spec.rb +64 -0
  529. data/spec/models/cashbook_entry_data_document_spec.rb +46 -0
  530. data/spec/models/cashbook_entry_data_spec.rb +70 -0
  531. data/spec/models/cashbook_entry_in_data_spec.rb +40 -0
  532. data/spec/models/cashbook_entry_in_out_spec.rb +94 -0
  533. data/spec/models/cashbook_entry_in_spec.rb +82 -0
  534. data/spec/models/cashbook_entry_kind_spec.rb +28 -0
  535. data/spec/models/cashbook_entry_out_data_spec.rb +40 -0
  536. data/spec/models/cashbook_entry_out_spec.rb +82 -0
  537. data/spec/models/cashbook_entry_spec.rb +31 -0
  538. data/spec/models/cashbook_entry_type_spec.rb +28 -0
  539. data/spec/models/city_spec.rb +46 -0
  540. data/spec/models/client_spec.rb +220 -0
  541. data/spec/models/client_type_spec.rb +28 -0
  542. data/spec/models/company_info_access_info_spec.rb +46 -0
  543. data/spec/models/company_info_plan_info_functions_spec.rb +136 -0
  544. data/spec/models/company_info_plan_info_functions_status_spec.rb +40 -0
  545. data/spec/models/company_info_plan_info_limits_spec.rb +52 -0
  546. data/spec/models/company_info_plan_info_spec.rb +46 -0
  547. data/spec/models/company_info_spec.rb +76 -0
  548. data/spec/models/company_spec.rb +70 -0
  549. data/spec/models/company_type_spec.rb +28 -0
  550. data/spec/models/create_archive_document_request_spec.rb +34 -0
  551. data/spec/models/create_archive_document_response_spec.rb +34 -0
  552. data/spec/models/create_cashbook_entry_request_spec.rb +34 -0
  553. data/spec/models/create_cashbook_entry_response_spec.rb +34 -0
  554. data/spec/models/create_client_request_spec.rb +34 -0
  555. data/spec/models/create_client_response_spec.rb +34 -0
  556. data/spec/models/create_f24_request_spec.rb +34 -0
  557. data/spec/models/create_f24_response_spec.rb +34 -0
  558. data/spec/models/create_issued_document_request_spec.rb +34 -0
  559. data/spec/models/create_issued_document_response_spec.rb +34 -0
  560. data/spec/models/create_payment_account_request_spec.rb +34 -0
  561. data/spec/models/create_payment_account_response_spec.rb +34 -0
  562. data/spec/models/create_payment_method_request_spec.rb +34 -0
  563. data/spec/models/create_payment_method_response_spec.rb +34 -0
  564. data/spec/models/create_product_request_spec.rb +34 -0
  565. data/spec/models/create_product_response_spec.rb +34 -0
  566. data/spec/models/create_receipt_request_spec.rb +40 -0
  567. data/spec/models/create_receipt_response_spec.rb +34 -0
  568. data/spec/models/create_received_document_request_spec.rb +40 -0
  569. data/spec/models/create_received_document_response_spec.rb +34 -0
  570. data/spec/models/create_supplier_request_spec.rb +34 -0
  571. data/spec/models/create_supplier_response_spec.rb +34 -0
  572. data/spec/models/create_vat_type_request_spec.rb +34 -0
  573. data/spec/models/create_vat_type_response_spec.rb +34 -0
  574. data/spec/models/currency_spec.rb +52 -0
  575. data/spec/models/default_payment_terms_type_spec.rb +28 -0
  576. data/spec/models/document_template_spec.rb +46 -0
  577. data/spec/models/email_data_default_sender_email_spec.rb +40 -0
  578. data/spec/models/email_data_sender_emails_list_spec.rb +40 -0
  579. data/spec/models/email_data_spec.rb +94 -0
  580. data/spec/models/email_schedule_include_spec.rb +52 -0
  581. data/spec/models/email_schedule_spec.rb +76 -0
  582. data/spec/models/entity_spec.rb +31 -0
  583. data/spec/models/f24_spec.rb +76 -0
  584. data/spec/models/f24_status_spec.rb +28 -0
  585. data/spec/models/function_status_spec.rb +34 -0
  586. data/spec/models/get_archive_document_response_spec.rb +34 -0
  587. data/spec/models/get_cashbook_entry_response_spec.rb +34 -0
  588. data/spec/models/get_client_response_spec.rb +34 -0
  589. data/spec/models/get_company_info_response_spec.rb +34 -0
  590. data/spec/models/get_email_data_response_spec.rb +34 -0
  591. data/spec/models/get_existing_issued_document_totals_request_spec.rb +34 -0
  592. data/spec/models/get_existing_issued_document_totals_response_spec.rb +34 -0
  593. data/spec/models/get_existing_received_document_totals_request_spec.rb +34 -0
  594. data/spec/models/get_existing_received_document_totals_response_spec.rb +34 -0
  595. data/spec/models/get_f24_response_spec.rb +34 -0
  596. data/spec/models/get_issued_document_pre_create_info_response_spec.rb +34 -0
  597. data/spec/models/get_issued_document_response_spec.rb +34 -0
  598. data/spec/models/get_new_issued_document_totals_request_spec.rb +34 -0
  599. data/spec/models/get_new_issued_document_totals_response_spec.rb +34 -0
  600. data/spec/models/get_new_received_document_totals_request_spec.rb +34 -0
  601. data/spec/models/get_new_received_document_totals_response_spec.rb +34 -0
  602. data/spec/models/get_payment_account_response_spec.rb +34 -0
  603. data/spec/models/get_payment_method_response_spec.rb +34 -0
  604. data/spec/models/get_product_response_spec.rb +34 -0
  605. data/spec/models/get_receipt_pre_create_info_response_spec.rb +34 -0
  606. data/spec/models/get_receipt_response_spec.rb +34 -0
  607. data/spec/models/get_receipts_monthly_totals_response_spec.rb +34 -0
  608. data/spec/models/get_received_document_pre_create_info_response_spec.rb +34 -0
  609. data/spec/models/get_received_document_response_spec.rb +34 -0
  610. data/spec/models/get_supplier_response_spec.rb +34 -0
  611. data/spec/models/get_user_info_response_email_confirmation_state_spec.rb +34 -0
  612. data/spec/models/get_user_info_response_info_spec.rb +46 -0
  613. data/spec/models/get_user_info_response_spec.rb +46 -0
  614. data/spec/models/get_vat_type_response_spec.rb +34 -0
  615. data/spec/models/issued_document_ei_data_spec.rb +100 -0
  616. data/spec/models/issued_document_extra_data_spec.rb +106 -0
  617. data/spec/models/issued_document_items_list_spec.rb +124 -0
  618. data/spec/models/issued_document_payments_list_spec.rb +64 -0
  619. data/spec/models/issued_document_pre_create_info_default_values_spec.rb +94 -0
  620. data/spec/models/issued_document_pre_create_info_extra_data_default_values_spec.rb +52 -0
  621. data/spec/models/issued_document_pre_create_info_items_default_values_spec.rb +34 -0
  622. data/spec/models/issued_document_pre_create_info_spec.rb +106 -0
  623. data/spec/models/issued_document_refers_to_spec.rb +58 -0
  624. data/spec/models/issued_document_spec.rb +490 -0
  625. data/spec/models/issued_document_status_spec.rb +28 -0
  626. data/spec/models/issued_document_totals_spec.rb +130 -0
  627. data/spec/models/issued_document_totals_vat_list_spec.rb +34 -0
  628. data/spec/models/issued_document_totals_vat_list_vat_item_spec.rb +40 -0
  629. data/spec/models/issued_document_type_spec.rb +28 -0
  630. data/spec/models/language_spec.rb +40 -0
  631. data/spec/models/list_archive_categories_response_spec.rb +34 -0
  632. data/spec/models/list_archive_documents_response_page_spec.rb +34 -0
  633. data/spec/models/list_archive_documents_response_spec.rb +100 -0
  634. data/spec/models/list_cashbook_entries_response_spec.rb +34 -0
  635. data/spec/models/list_cities_response_spec.rb +34 -0
  636. data/spec/models/list_clients_response_page_spec.rb +34 -0
  637. data/spec/models/list_clients_response_spec.rb +100 -0
  638. data/spec/models/list_cost_centers_response_spec.rb +34 -0
  639. data/spec/models/list_countries_response_spec.rb +34 -0
  640. data/spec/models/list_currencies_response_spec.rb +34 -0
  641. data/spec/models/list_delivery_notes_default_causals_response_spec.rb +34 -0
  642. data/spec/models/list_f24_response_aggregated_data_aggregated_data_spec.rb +34 -0
  643. data/spec/models/list_f24_response_aggregated_data_spec.rb +34 -0
  644. data/spec/models/list_f24_response_page_spec.rb +34 -0
  645. data/spec/models/list_f24_response_spec.rb +106 -0
  646. data/spec/models/list_issued_documents_response_page_spec.rb +34 -0
  647. data/spec/models/list_issued_documents_response_spec.rb +100 -0
  648. data/spec/models/list_languages_response_spec.rb +34 -0
  649. data/spec/models/list_payment_accounts_response_spec.rb +34 -0
  650. data/spec/models/list_payment_methods_response_spec.rb +34 -0
  651. data/spec/models/list_product_categories_response_spec.rb +34 -0
  652. data/spec/models/list_products_response_page_spec.rb +34 -0
  653. data/spec/models/list_products_response_spec.rb +100 -0
  654. data/spec/models/list_receipts_response_page_spec.rb +34 -0
  655. data/spec/models/list_receipts_response_spec.rb +100 -0
  656. data/spec/models/list_received_document_categories_response_spec.rb +34 -0
  657. data/spec/models/list_received_documents_response_page_spec.rb +34 -0
  658. data/spec/models/list_received_documents_response_spec.rb +100 -0
  659. data/spec/models/list_revenue_centers_response_spec.rb +34 -0
  660. data/spec/models/list_suppliers_response_page_spec.rb +34 -0
  661. data/spec/models/list_suppliers_response_spec.rb +100 -0
  662. data/spec/models/list_templates_response_spec.rb +34 -0
  663. data/spec/models/list_units_of_measure_response_spec.rb +34 -0
  664. data/spec/models/list_user_companies_response_data_spec.rb +34 -0
  665. data/spec/models/list_user_companies_response_spec.rb +34 -0
  666. data/spec/models/list_vat_types_response_spec.rb +34 -0
  667. data/spec/models/modify_archive_document_request_spec.rb +34 -0
  668. data/spec/models/modify_archive_document_response_spec.rb +34 -0
  669. data/spec/models/modify_cashbook_entry_request_spec.rb +34 -0
  670. data/spec/models/modify_cashbook_entry_response_spec.rb +34 -0
  671. data/spec/models/modify_client_request_spec.rb +34 -0
  672. data/spec/models/modify_client_response_spec.rb +34 -0
  673. data/spec/models/modify_f24_request_spec.rb +34 -0
  674. data/spec/models/modify_f24_response_spec.rb +34 -0
  675. data/spec/models/modify_issued_document_request_spec.rb +34 -0
  676. data/spec/models/modify_issued_document_response_spec.rb +34 -0
  677. data/spec/models/modify_payment_account_request_spec.rb +34 -0
  678. data/spec/models/modify_payment_account_response_spec.rb +34 -0
  679. data/spec/models/modify_payment_method_request_spec.rb +34 -0
  680. data/spec/models/modify_payment_method_response_spec.rb +34 -0
  681. data/spec/models/modify_product_request_spec.rb +34 -0
  682. data/spec/models/modify_product_response_spec.rb +34 -0
  683. data/spec/models/modify_receipt_request_spec.rb +34 -0
  684. data/spec/models/modify_receipt_response_spec.rb +34 -0
  685. data/spec/models/modify_received_document_request_spec.rb +34 -0
  686. data/spec/models/modify_received_document_response_spec.rb +34 -0
  687. data/spec/models/modify_supplier_request_spec.rb +34 -0
  688. data/spec/models/modify_supplier_response_spec.rb +34 -0
  689. data/spec/models/modify_vat_type_request_spec.rb +34 -0
  690. data/spec/models/modify_vat_type_response_spec.rb +34 -0
  691. data/spec/models/monthly_total_spec.rb +46 -0
  692. data/spec/models/original_document_type_spec.rb +28 -0
  693. data/spec/models/pagination_spec.rb +94 -0
  694. data/spec/models/payment_account_spec.rb +70 -0
  695. data/spec/models/payment_account_type_spec.rb +28 -0
  696. data/spec/models/payment_method_details_spec.rb +40 -0
  697. data/spec/models/payment_method_spec.rb +88 -0
  698. data/spec/models/payment_method_type_spec.rb +28 -0
  699. data/spec/models/permission_level_spec.rb +28 -0
  700. data/spec/models/permissions_fic_issued_documents_detailed_spec.rb +88 -0
  701. data/spec/models/permissions_spec.rb +178 -0
  702. data/spec/models/product_spec.rb +142 -0
  703. data/spec/models/receipt_items_list_item_spec.rb +58 -0
  704. data/spec/models/receipt_pre_create_info_spec.rb +64 -0
  705. data/spec/models/receipt_spec.rb +118 -0
  706. data/spec/models/receipt_type_spec.rb +28 -0
  707. data/spec/models/received_document_entity_spec.rb +40 -0
  708. data/spec/models/received_document_info_default_values_spec.rb +34 -0
  709. data/spec/models/received_document_info_items_default_values_spec.rb +34 -0
  710. data/spec/models/received_document_info_spec.rb +70 -0
  711. data/spec/models/received_document_items_list_spec.rb +88 -0
  712. data/spec/models/received_document_payment_terms_spec.rb +40 -0
  713. data/spec/models/received_document_payments_list_spec.rb +70 -0
  714. data/spec/models/received_document_spec.rb +184 -0
  715. data/spec/models/received_document_totals_spec.rb +70 -0
  716. data/spec/models/received_document_type_spec.rb +28 -0
  717. data/spec/models/schedule_email_request_spec.rb +34 -0
  718. data/spec/models/send_e_invoice_request_data_spec.rb +40 -0
  719. data/spec/models/send_e_invoice_request_spec.rb +34 -0
  720. data/spec/models/send_e_invoice_response_data_spec.rb +40 -0
  721. data/spec/models/send_e_invoice_response_spec.rb +34 -0
  722. data/spec/models/show_totals_mode_spec.rb +28 -0
  723. data/spec/models/supplier_spec.rb +160 -0
  724. data/spec/models/supplier_type_spec.rb +28 -0
  725. data/spec/models/upload_archive_attachment_response_spec.rb +34 -0
  726. data/spec/models/upload_f24_attachment_response_spec.rb +34 -0
  727. data/spec/models/upload_issued_document_attachment_response_data_spec.rb +34 -0
  728. data/spec/models/upload_issued_document_attachment_response_spec.rb +34 -0
  729. data/spec/models/upload_received_document_attachment_response_data_spec.rb +34 -0
  730. data/spec/models/upload_received_document_attachment_response_spec.rb +34 -0
  731. data/spec/models/user_company_role_spec.rb +28 -0
  732. data/spec/models/user_spec.rb +70 -0
  733. data/spec/models/vat_kind_spec.rb +28 -0
  734. data/spec/models/vat_type_spec.rb +82 -0
  735. data/spec/models/verify_e_invoice_xml_error_response_error_spec.rb +40 -0
  736. data/spec/models/verify_e_invoice_xml_error_response_extra_spec.rb +34 -0
  737. data/spec/models/verify_e_invoice_xml_error_response_spec.rb +40 -0
  738. data/spec/models/verify_e_invoice_xml_response_data_spec.rb +34 -0
  739. data/spec/models/verify_e_invoice_xml_response_spec.rb +34 -0
  740. data/spec/spec_helper.rb +111 -0
  741. metadata +1051 -0
@@ -0,0 +1,965 @@
1
+ 'use strict';
2
+
3
+ /*eslint-disable no-use-before-define*/
4
+
5
+ var common = require('./common');
6
+ var YAMLException = require('./exception');
7
+ var DEFAULT_SCHEMA = require('./schema/default');
8
+
9
+ var _toString = Object.prototype.toString;
10
+ var _hasOwnProperty = Object.prototype.hasOwnProperty;
11
+
12
+ var CHAR_BOM = 0xFEFF;
13
+ var CHAR_TAB = 0x09; /* Tab */
14
+ var CHAR_LINE_FEED = 0x0A; /* LF */
15
+ var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */
16
+ var CHAR_SPACE = 0x20; /* Space */
17
+ var CHAR_EXCLAMATION = 0x21; /* ! */
18
+ var CHAR_DOUBLE_QUOTE = 0x22; /* " */
19
+ var CHAR_SHARP = 0x23; /* # */
20
+ var CHAR_PERCENT = 0x25; /* % */
21
+ var CHAR_AMPERSAND = 0x26; /* & */
22
+ var CHAR_SINGLE_QUOTE = 0x27; /* ' */
23
+ var CHAR_ASTERISK = 0x2A; /* * */
24
+ var CHAR_COMMA = 0x2C; /* , */
25
+ var CHAR_MINUS = 0x2D; /* - */
26
+ var CHAR_COLON = 0x3A; /* : */
27
+ var CHAR_EQUALS = 0x3D; /* = */
28
+ var CHAR_GREATER_THAN = 0x3E; /* > */
29
+ var CHAR_QUESTION = 0x3F; /* ? */
30
+ var CHAR_COMMERCIAL_AT = 0x40; /* @ */
31
+ var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */
32
+ var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */
33
+ var CHAR_GRAVE_ACCENT = 0x60; /* ` */
34
+ var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */
35
+ var CHAR_VERTICAL_LINE = 0x7C; /* | */
36
+ var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */
37
+
38
+ var ESCAPE_SEQUENCES = {};
39
+
40
+ ESCAPE_SEQUENCES[0x00] = '\\0';
41
+ ESCAPE_SEQUENCES[0x07] = '\\a';
42
+ ESCAPE_SEQUENCES[0x08] = '\\b';
43
+ ESCAPE_SEQUENCES[0x09] = '\\t';
44
+ ESCAPE_SEQUENCES[0x0A] = '\\n';
45
+ ESCAPE_SEQUENCES[0x0B] = '\\v';
46
+ ESCAPE_SEQUENCES[0x0C] = '\\f';
47
+ ESCAPE_SEQUENCES[0x0D] = '\\r';
48
+ ESCAPE_SEQUENCES[0x1B] = '\\e';
49
+ ESCAPE_SEQUENCES[0x22] = '\\"';
50
+ ESCAPE_SEQUENCES[0x5C] = '\\\\';
51
+ ESCAPE_SEQUENCES[0x85] = '\\N';
52
+ ESCAPE_SEQUENCES[0xA0] = '\\_';
53
+ ESCAPE_SEQUENCES[0x2028] = '\\L';
54
+ ESCAPE_SEQUENCES[0x2029] = '\\P';
55
+
56
+ var DEPRECATED_BOOLEANS_SYNTAX = [
57
+ 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',
58
+ 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'
59
+ ];
60
+
61
+ var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;
62
+
63
+ function compileStyleMap(schema, map) {
64
+ var result, keys, index, length, tag, style, type;
65
+
66
+ if (map === null) return {};
67
+
68
+ result = {};
69
+ keys = Object.keys(map);
70
+
71
+ for (index = 0, length = keys.length; index < length; index += 1) {
72
+ tag = keys[index];
73
+ style = String(map[tag]);
74
+
75
+ if (tag.slice(0, 2) === '!!') {
76
+ tag = 'tag:yaml.org,2002:' + tag.slice(2);
77
+ }
78
+ type = schema.compiledTypeMap['fallback'][tag];
79
+
80
+ if (type && _hasOwnProperty.call(type.styleAliases, style)) {
81
+ style = type.styleAliases[style];
82
+ }
83
+
84
+ result[tag] = style;
85
+ }
86
+
87
+ return result;
88
+ }
89
+
90
+ function encodeHex(character) {
91
+ var string, handle, length;
92
+
93
+ string = character.toString(16).toUpperCase();
94
+
95
+ if (character <= 0xFF) {
96
+ handle = 'x';
97
+ length = 2;
98
+ } else if (character <= 0xFFFF) {
99
+ handle = 'u';
100
+ length = 4;
101
+ } else if (character <= 0xFFFFFFFF) {
102
+ handle = 'U';
103
+ length = 8;
104
+ } else {
105
+ throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');
106
+ }
107
+
108
+ return '\\' + handle + common.repeat('0', length - string.length) + string;
109
+ }
110
+
111
+
112
+ var QUOTING_TYPE_SINGLE = 1,
113
+ QUOTING_TYPE_DOUBLE = 2;
114
+
115
+ function State(options) {
116
+ this.schema = options['schema'] || DEFAULT_SCHEMA;
117
+ this.indent = Math.max(1, (options['indent'] || 2));
118
+ this.noArrayIndent = options['noArrayIndent'] || false;
119
+ this.skipInvalid = options['skipInvalid'] || false;
120
+ this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);
121
+ this.styleMap = compileStyleMap(this.schema, options['styles'] || null);
122
+ this.sortKeys = options['sortKeys'] || false;
123
+ this.lineWidth = options['lineWidth'] || 80;
124
+ this.noRefs = options['noRefs'] || false;
125
+ this.noCompatMode = options['noCompatMode'] || false;
126
+ this.condenseFlow = options['condenseFlow'] || false;
127
+ this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE;
128
+ this.forceQuotes = options['forceQuotes'] || false;
129
+ this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null;
130
+
131
+ this.implicitTypes = this.schema.compiledImplicit;
132
+ this.explicitTypes = this.schema.compiledExplicit;
133
+
134
+ this.tag = null;
135
+ this.result = '';
136
+
137
+ this.duplicates = [];
138
+ this.usedDuplicates = null;
139
+ }
140
+
141
+ // Indents every line in a string. Empty lines (\n only) are not indented.
142
+ function indentString(string, spaces) {
143
+ var ind = common.repeat(' ', spaces),
144
+ position = 0,
145
+ next = -1,
146
+ result = '',
147
+ line,
148
+ length = string.length;
149
+
150
+ while (position < length) {
151
+ next = string.indexOf('\n', position);
152
+ if (next === -1) {
153
+ line = string.slice(position);
154
+ position = length;
155
+ } else {
156
+ line = string.slice(position, next + 1);
157
+ position = next + 1;
158
+ }
159
+
160
+ if (line.length && line !== '\n') result += ind;
161
+
162
+ result += line;
163
+ }
164
+
165
+ return result;
166
+ }
167
+
168
+ function generateNextLine(state, level) {
169
+ return '\n' + common.repeat(' ', state.indent * level);
170
+ }
171
+
172
+ function testImplicitResolving(state, str) {
173
+ var index, length, type;
174
+
175
+ for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {
176
+ type = state.implicitTypes[index];
177
+
178
+ if (type.resolve(str)) {
179
+ return true;
180
+ }
181
+ }
182
+
183
+ return false;
184
+ }
185
+
186
+ // [33] s-white ::= s-space | s-tab
187
+ function isWhitespace(c) {
188
+ return c === CHAR_SPACE || c === CHAR_TAB;
189
+ }
190
+
191
+ // Returns true if the character can be printed without escaping.
192
+ // From YAML 1.2: "any allowed characters known to be non-printable
193
+ // should also be escaped. [However,] This isn’t mandatory"
194
+ // Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029.
195
+ function isPrintable(c) {
196
+ return (0x00020 <= c && c <= 0x00007E)
197
+ || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)
198
+ || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM)
199
+ || (0x10000 <= c && c <= 0x10FFFF);
200
+ }
201
+
202
+ // [34] ns-char ::= nb-char - s-white
203
+ // [27] nb-char ::= c-printable - b-char - c-byte-order-mark
204
+ // [26] b-char ::= b-line-feed | b-carriage-return
205
+ // Including s-white (for some reason, examples doesn't match specs in this aspect)
206
+ // ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark
207
+ function isNsCharOrWhitespace(c) {
208
+ return isPrintable(c)
209
+ && c !== CHAR_BOM
210
+ // - b-char
211
+ && c !== CHAR_CARRIAGE_RETURN
212
+ && c !== CHAR_LINE_FEED;
213
+ }
214
+
215
+ // [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out
216
+ // c = flow-in ⇒ ns-plain-safe-in
217
+ // c = block-key ⇒ ns-plain-safe-out
218
+ // c = flow-key ⇒ ns-plain-safe-in
219
+ // [128] ns-plain-safe-out ::= ns-char
220
+ // [129] ns-plain-safe-in ::= ns-char - c-flow-indicator
221
+ // [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” )
222
+ // | ( /* An ns-char preceding */ “#” )
223
+ // | ( “:” /* Followed by an ns-plain-safe(c) */ )
224
+ function isPlainSafe(c, prev, inblock) {
225
+ var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c);
226
+ var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c);
227
+ return (
228
+ // ns-plain-safe
229
+ inblock ? // c = flow-in
230
+ cIsNsCharOrWhitespace
231
+ : cIsNsCharOrWhitespace
232
+ // - c-flow-indicator
233
+ && c !== CHAR_COMMA
234
+ && c !== CHAR_LEFT_SQUARE_BRACKET
235
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
236
+ && c !== CHAR_LEFT_CURLY_BRACKET
237
+ && c !== CHAR_RIGHT_CURLY_BRACKET
238
+ )
239
+ // ns-plain-char
240
+ && c !== CHAR_SHARP // false on '#'
241
+ && !(prev === CHAR_COLON && !cIsNsChar) // false on ': '
242
+ || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#'
243
+ || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]'
244
+ }
245
+
246
+ // Simplified test for values allowed as the first character in plain style.
247
+ function isPlainSafeFirst(c) {
248
+ // Uses a subset of ns-char - c-indicator
249
+ // where ns-char = nb-char - s-white.
250
+ // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part
251
+ return isPrintable(c) && c !== CHAR_BOM
252
+ && !isWhitespace(c) // - s-white
253
+ // - (c-indicator ::=
254
+ // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”
255
+ && c !== CHAR_MINUS
256
+ && c !== CHAR_QUESTION
257
+ && c !== CHAR_COLON
258
+ && c !== CHAR_COMMA
259
+ && c !== CHAR_LEFT_SQUARE_BRACKET
260
+ && c !== CHAR_RIGHT_SQUARE_BRACKET
261
+ && c !== CHAR_LEFT_CURLY_BRACKET
262
+ && c !== CHAR_RIGHT_CURLY_BRACKET
263
+ // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"”
264
+ && c !== CHAR_SHARP
265
+ && c !== CHAR_AMPERSAND
266
+ && c !== CHAR_ASTERISK
267
+ && c !== CHAR_EXCLAMATION
268
+ && c !== CHAR_VERTICAL_LINE
269
+ && c !== CHAR_EQUALS
270
+ && c !== CHAR_GREATER_THAN
271
+ && c !== CHAR_SINGLE_QUOTE
272
+ && c !== CHAR_DOUBLE_QUOTE
273
+ // | “%” | “@” | “`”)
274
+ && c !== CHAR_PERCENT
275
+ && c !== CHAR_COMMERCIAL_AT
276
+ && c !== CHAR_GRAVE_ACCENT;
277
+ }
278
+
279
+ // Simplified test for values allowed as the last character in plain style.
280
+ function isPlainSafeLast(c) {
281
+ // just not whitespace or colon, it will be checked to be plain character later
282
+ return !isWhitespace(c) && c !== CHAR_COLON;
283
+ }
284
+
285
+ // Same as 'string'.codePointAt(pos), but works in older browsers.
286
+ function codePointAt(string, pos) {
287
+ var first = string.charCodeAt(pos), second;
288
+ if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) {
289
+ second = string.charCodeAt(pos + 1);
290
+ if (second >= 0xDC00 && second <= 0xDFFF) {
291
+ // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
292
+ return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
293
+ }
294
+ }
295
+ return first;
296
+ }
297
+
298
+ // Determines whether block indentation indicator is required.
299
+ function needIndentIndicator(string) {
300
+ var leadingSpaceRe = /^\n* /;
301
+ return leadingSpaceRe.test(string);
302
+ }
303
+
304
+ var STYLE_PLAIN = 1,
305
+ STYLE_SINGLE = 2,
306
+ STYLE_LITERAL = 3,
307
+ STYLE_FOLDED = 4,
308
+ STYLE_DOUBLE = 5;
309
+
310
+ // Determines which scalar styles are possible and returns the preferred style.
311
+ // lineWidth = -1 => no limit.
312
+ // Pre-conditions: str.length > 0.
313
+ // Post-conditions:
314
+ // STYLE_PLAIN or STYLE_SINGLE => no \n are in the string.
315
+ // STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).
316
+ // STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).
317
+ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth,
318
+ testAmbiguousType, quotingType, forceQuotes, inblock) {
319
+
320
+ var i;
321
+ var char = 0;
322
+ var prevChar = null;
323
+ var hasLineBreak = false;
324
+ var hasFoldableLine = false; // only checked if shouldTrackWidth
325
+ var shouldTrackWidth = lineWidth !== -1;
326
+ var previousLineBreak = -1; // count the first line correctly
327
+ var plain = isPlainSafeFirst(codePointAt(string, 0))
328
+ && isPlainSafeLast(codePointAt(string, string.length - 1));
329
+
330
+ if (singleLineOnly || forceQuotes) {
331
+ // Case: no block styles.
332
+ // Check for disallowed characters to rule out plain and single.
333
+ for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
334
+ char = codePointAt(string, i);
335
+ if (!isPrintable(char)) {
336
+ return STYLE_DOUBLE;
337
+ }
338
+ plain = plain && isPlainSafe(char, prevChar, inblock);
339
+ prevChar = char;
340
+ }
341
+ } else {
342
+ // Case: block styles permitted.
343
+ for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
344
+ char = codePointAt(string, i);
345
+ if (char === CHAR_LINE_FEED) {
346
+ hasLineBreak = true;
347
+ // Check if any line can be folded.
348
+ if (shouldTrackWidth) {
349
+ hasFoldableLine = hasFoldableLine ||
350
+ // Foldable line = too long, and not more-indented.
351
+ (i - previousLineBreak - 1 > lineWidth &&
352
+ string[previousLineBreak + 1] !== ' ');
353
+ previousLineBreak = i;
354
+ }
355
+ } else if (!isPrintable(char)) {
356
+ return STYLE_DOUBLE;
357
+ }
358
+ plain = plain && isPlainSafe(char, prevChar, inblock);
359
+ prevChar = char;
360
+ }
361
+ // in case the end is missing a \n
362
+ hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&
363
+ (i - previousLineBreak - 1 > lineWidth &&
364
+ string[previousLineBreak + 1] !== ' '));
365
+ }
366
+ // Although every style can represent \n without escaping, prefer block styles
367
+ // for multiline, since they're more readable and they don't add empty lines.
368
+ // Also prefer folding a super-long line.
369
+ if (!hasLineBreak && !hasFoldableLine) {
370
+ // Strings interpretable as another type have to be quoted;
371
+ // e.g. the string 'true' vs. the boolean true.
372
+ if (plain && !forceQuotes && !testAmbiguousType(string)) {
373
+ return STYLE_PLAIN;
374
+ }
375
+ return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
376
+ }
377
+ // Edge case: block indentation indicator can only have one digit.
378
+ if (indentPerLevel > 9 && needIndentIndicator(string)) {
379
+ return STYLE_DOUBLE;
380
+ }
381
+ // At this point we know block styles are valid.
382
+ // Prefer literal style unless we want to fold.
383
+ if (!forceQuotes) {
384
+ return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;
385
+ }
386
+ return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE;
387
+ }
388
+
389
+ // Note: line breaking/folding is implemented for only the folded style.
390
+ // NB. We drop the last trailing newline (if any) of a returned block scalar
391
+ // since the dumper adds its own newline. This always works:
392
+ // • No ending newline => unaffected; already using strip "-" chomping.
393
+ // • Ending newline => removed then restored.
394
+ // Importantly, this keeps the "+" chomp indicator from gaining an extra line.
395
+ function writeScalar(state, string, level, iskey, inblock) {
396
+ state.dump = (function () {
397
+ if (string.length === 0) {
398
+ return state.quotingType === QUOTING_TYPE_DOUBLE ? '""' : "''";
399
+ }
400
+ if (!state.noCompatMode) {
401
+ if (DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1 || DEPRECATED_BASE60_SYNTAX.test(string)) {
402
+ return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'");
403
+ }
404
+ }
405
+
406
+ var indent = state.indent * Math.max(1, level); // no 0-indent scalars
407
+ // As indentation gets deeper, let the width decrease monotonically
408
+ // to the lower bound min(state.lineWidth, 40).
409
+ // Note that this implies
410
+ // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.
411
+ // state.lineWidth > 40 + state.indent: width decreases until the lower bound.
412
+ // This behaves better than a constant minimum width which disallows narrower options,
413
+ // or an indent threshold which causes the width to suddenly increase.
414
+ var lineWidth = state.lineWidth === -1
415
+ ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);
416
+
417
+ // Without knowing if keys are implicit/explicit, assume implicit for safety.
418
+ var singleLineOnly = iskey
419
+ // No block styles in flow mode.
420
+ || (state.flowLevel > -1 && level >= state.flowLevel);
421
+ function testAmbiguity(string) {
422
+ return testImplicitResolving(state, string);
423
+ }
424
+
425
+ switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth,
426
+ testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) {
427
+
428
+ case STYLE_PLAIN:
429
+ return string;
430
+ case STYLE_SINGLE:
431
+ return "'" + string.replace(/'/g, "''") + "'";
432
+ case STYLE_LITERAL:
433
+ return '|' + blockHeader(string, state.indent)
434
+ + dropEndingNewline(indentString(string, indent));
435
+ case STYLE_FOLDED:
436
+ return '>' + blockHeader(string, state.indent)
437
+ + dropEndingNewline(indentString(foldString(string, lineWidth), indent));
438
+ case STYLE_DOUBLE:
439
+ return '"' + escapeString(string, lineWidth) + '"';
440
+ default:
441
+ throw new YAMLException('impossible error: invalid scalar style');
442
+ }
443
+ }());
444
+ }
445
+
446
+ // Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.
447
+ function blockHeader(string, indentPerLevel) {
448
+ var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';
449
+
450
+ // note the special case: the string '\n' counts as a "trailing" empty line.
451
+ var clip = string[string.length - 1] === '\n';
452
+ var keep = clip && (string[string.length - 2] === '\n' || string === '\n');
453
+ var chomp = keep ? '+' : (clip ? '' : '-');
454
+
455
+ return indentIndicator + chomp + '\n';
456
+ }
457
+
458
+ // (See the note for writeScalar.)
459
+ function dropEndingNewline(string) {
460
+ return string[string.length - 1] === '\n' ? string.slice(0, -1) : string;
461
+ }
462
+
463
+ // Note: a long line without a suitable break point will exceed the width limit.
464
+ // Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.
465
+ function foldString(string, width) {
466
+ // In folded style, $k$ consecutive newlines output as $k+1$ newlines—
467
+ // unless they're before or after a more-indented line, or at the very
468
+ // beginning or end, in which case $k$ maps to $k$.
469
+ // Therefore, parse each chunk as newline(s) followed by a content line.
470
+ var lineRe = /(\n+)([^\n]*)/g;
471
+
472
+ // first line (possibly an empty line)
473
+ var result = (function () {
474
+ var nextLF = string.indexOf('\n');
475
+ nextLF = nextLF !== -1 ? nextLF : string.length;
476
+ lineRe.lastIndex = nextLF;
477
+ return foldLine(string.slice(0, nextLF), width);
478
+ }());
479
+ // If we haven't reached the first content line yet, don't add an extra \n.
480
+ var prevMoreIndented = string[0] === '\n' || string[0] === ' ';
481
+ var moreIndented;
482
+
483
+ // rest of the lines
484
+ var match;
485
+ while ((match = lineRe.exec(string))) {
486
+ var prefix = match[1], line = match[2];
487
+ moreIndented = (line[0] === ' ');
488
+ result += prefix
489
+ + (!prevMoreIndented && !moreIndented && line !== ''
490
+ ? '\n' : '')
491
+ + foldLine(line, width);
492
+ prevMoreIndented = moreIndented;
493
+ }
494
+
495
+ return result;
496
+ }
497
+
498
+ // Greedy line breaking.
499
+ // Picks the longest line under the limit each time,
500
+ // otherwise settles for the shortest line over the limit.
501
+ // NB. More-indented lines *cannot* be folded, as that would add an extra \n.
502
+ function foldLine(line, width) {
503
+ if (line === '' || line[0] === ' ') return line;
504
+
505
+ // Since a more-indented line adds a \n, breaks can't be followed by a space.
506
+ var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.
507
+ var match;
508
+ // start is an inclusive index. end, curr, and next are exclusive.
509
+ var start = 0, end, curr = 0, next = 0;
510
+ var result = '';
511
+
512
+ // Invariants: 0 <= start <= length-1.
513
+ // 0 <= curr <= next <= max(0, length-2). curr - start <= width.
514
+ // Inside the loop:
515
+ // A match implies length >= 2, so curr and next are <= length-2.
516
+ while ((match = breakRe.exec(line))) {
517
+ next = match.index;
518
+ // maintain invariant: curr - start <= width
519
+ if (next - start > width) {
520
+ end = (curr > start) ? curr : next; // derive end <= length-2
521
+ result += '\n' + line.slice(start, end);
522
+ // skip the space that was output as \n
523
+ start = end + 1; // derive start <= length-1
524
+ }
525
+ curr = next;
526
+ }
527
+
528
+ // By the invariants, start <= length-1, so there is something left over.
529
+ // It is either the whole string or a part starting from non-whitespace.
530
+ result += '\n';
531
+ // Insert a break if the remainder is too long and there is a break available.
532
+ if (line.length - start > width && curr > start) {
533
+ result += line.slice(start, curr) + '\n' + line.slice(curr + 1);
534
+ } else {
535
+ result += line.slice(start);
536
+ }
537
+
538
+ return result.slice(1); // drop extra \n joiner
539
+ }
540
+
541
+ // Escapes a double-quoted string.
542
+ function escapeString(string) {
543
+ var result = '';
544
+ var char = 0;
545
+ var escapeSeq;
546
+
547
+ for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) {
548
+ char = codePointAt(string, i);
549
+ escapeSeq = ESCAPE_SEQUENCES[char];
550
+
551
+ if (!escapeSeq && isPrintable(char)) {
552
+ result += string[i];
553
+ if (char >= 0x10000) result += string[i + 1];
554
+ } else {
555
+ result += escapeSeq || encodeHex(char);
556
+ }
557
+ }
558
+
559
+ return result;
560
+ }
561
+
562
+ function writeFlowSequence(state, level, object) {
563
+ var _result = '',
564
+ _tag = state.tag,
565
+ index,
566
+ length,
567
+ value;
568
+
569
+ for (index = 0, length = object.length; index < length; index += 1) {
570
+ value = object[index];
571
+
572
+ if (state.replacer) {
573
+ value = state.replacer.call(object, String(index), value);
574
+ }
575
+
576
+ // Write only valid elements, put null instead of invalid elements.
577
+ if (writeNode(state, level, value, false, false) ||
578
+ (typeof value === 'undefined' &&
579
+ writeNode(state, level, null, false, false))) {
580
+
581
+ if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : '');
582
+ _result += state.dump;
583
+ }
584
+ }
585
+
586
+ state.tag = _tag;
587
+ state.dump = '[' + _result + ']';
588
+ }
589
+
590
+ function writeBlockSequence(state, level, object, compact) {
591
+ var _result = '',
592
+ _tag = state.tag,
593
+ index,
594
+ length,
595
+ value;
596
+
597
+ for (index = 0, length = object.length; index < length; index += 1) {
598
+ value = object[index];
599
+
600
+ if (state.replacer) {
601
+ value = state.replacer.call(object, String(index), value);
602
+ }
603
+
604
+ // Write only valid elements, put null instead of invalid elements.
605
+ if (writeNode(state, level + 1, value, true, true, false, true) ||
606
+ (typeof value === 'undefined' &&
607
+ writeNode(state, level + 1, null, true, true, false, true))) {
608
+
609
+ if (!compact || _result !== '') {
610
+ _result += generateNextLine(state, level);
611
+ }
612
+
613
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
614
+ _result += '-';
615
+ } else {
616
+ _result += '- ';
617
+ }
618
+
619
+ _result += state.dump;
620
+ }
621
+ }
622
+
623
+ state.tag = _tag;
624
+ state.dump = _result || '[]'; // Empty sequence if no valid values.
625
+ }
626
+
627
+ function writeFlowMapping(state, level, object) {
628
+ var _result = '',
629
+ _tag = state.tag,
630
+ objectKeyList = Object.keys(object),
631
+ index,
632
+ length,
633
+ objectKey,
634
+ objectValue,
635
+ pairBuffer;
636
+
637
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
638
+
639
+ pairBuffer = '';
640
+ if (_result !== '') pairBuffer += ', ';
641
+
642
+ if (state.condenseFlow) pairBuffer += '"';
643
+
644
+ objectKey = objectKeyList[index];
645
+ objectValue = object[objectKey];
646
+
647
+ if (state.replacer) {
648
+ objectValue = state.replacer.call(object, objectKey, objectValue);
649
+ }
650
+
651
+ if (!writeNode(state, level, objectKey, false, false)) {
652
+ continue; // Skip this pair because of invalid key;
653
+ }
654
+
655
+ if (state.dump.length > 1024) pairBuffer += '? ';
656
+
657
+ pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' ');
658
+
659
+ if (!writeNode(state, level, objectValue, false, false)) {
660
+ continue; // Skip this pair because of invalid value.
661
+ }
662
+
663
+ pairBuffer += state.dump;
664
+
665
+ // Both key and value are valid.
666
+ _result += pairBuffer;
667
+ }
668
+
669
+ state.tag = _tag;
670
+ state.dump = '{' + _result + '}';
671
+ }
672
+
673
+ function writeBlockMapping(state, level, object, compact) {
674
+ var _result = '',
675
+ _tag = state.tag,
676
+ objectKeyList = Object.keys(object),
677
+ index,
678
+ length,
679
+ objectKey,
680
+ objectValue,
681
+ explicitPair,
682
+ pairBuffer;
683
+
684
+ // Allow sorting keys so that the output file is deterministic
685
+ if (state.sortKeys === true) {
686
+ // Default sorting
687
+ objectKeyList.sort();
688
+ } else if (typeof state.sortKeys === 'function') {
689
+ // Custom sort function
690
+ objectKeyList.sort(state.sortKeys);
691
+ } else if (state.sortKeys) {
692
+ // Something is wrong
693
+ throw new YAMLException('sortKeys must be a boolean or a function');
694
+ }
695
+
696
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
697
+ pairBuffer = '';
698
+
699
+ if (!compact || _result !== '') {
700
+ pairBuffer += generateNextLine(state, level);
701
+ }
702
+
703
+ objectKey = objectKeyList[index];
704
+ objectValue = object[objectKey];
705
+
706
+ if (state.replacer) {
707
+ objectValue = state.replacer.call(object, objectKey, objectValue);
708
+ }
709
+
710
+ if (!writeNode(state, level + 1, objectKey, true, true, true)) {
711
+ continue; // Skip this pair because of invalid key.
712
+ }
713
+
714
+ explicitPair = (state.tag !== null && state.tag !== '?') ||
715
+ (state.dump && state.dump.length > 1024);
716
+
717
+ if (explicitPair) {
718
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
719
+ pairBuffer += '?';
720
+ } else {
721
+ pairBuffer += '? ';
722
+ }
723
+ }
724
+
725
+ pairBuffer += state.dump;
726
+
727
+ if (explicitPair) {
728
+ pairBuffer += generateNextLine(state, level);
729
+ }
730
+
731
+ if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {
732
+ continue; // Skip this pair because of invalid value.
733
+ }
734
+
735
+ if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {
736
+ pairBuffer += ':';
737
+ } else {
738
+ pairBuffer += ': ';
739
+ }
740
+
741
+ pairBuffer += state.dump;
742
+
743
+ // Both key and value are valid.
744
+ _result += pairBuffer;
745
+ }
746
+
747
+ state.tag = _tag;
748
+ state.dump = _result || '{}'; // Empty mapping if no valid pairs.
749
+ }
750
+
751
+ function detectType(state, object, explicit) {
752
+ var _result, typeList, index, length, type, style;
753
+
754
+ typeList = explicit ? state.explicitTypes : state.implicitTypes;
755
+
756
+ for (index = 0, length = typeList.length; index < length; index += 1) {
757
+ type = typeList[index];
758
+
759
+ if ((type.instanceOf || type.predicate) &&
760
+ (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&
761
+ (!type.predicate || type.predicate(object))) {
762
+
763
+ if (explicit) {
764
+ if (type.multi && type.representName) {
765
+ state.tag = type.representName(object);
766
+ } else {
767
+ state.tag = type.tag;
768
+ }
769
+ } else {
770
+ state.tag = '?';
771
+ }
772
+
773
+ if (type.represent) {
774
+ style = state.styleMap[type.tag] || type.defaultStyle;
775
+
776
+ if (_toString.call(type.represent) === '[object Function]') {
777
+ _result = type.represent(object, style);
778
+ } else if (_hasOwnProperty.call(type.represent, style)) {
779
+ _result = type.represent[style](object, style);
780
+ } else {
781
+ throw new YAMLException('!<' + type.tag + '> tag resolver accepts not "' + style + '" style');
782
+ }
783
+
784
+ state.dump = _result;
785
+ }
786
+
787
+ return true;
788
+ }
789
+ }
790
+
791
+ return false;
792
+ }
793
+
794
+ // Serializes `object` and writes it to global `result`.
795
+ // Returns true on success, or false on invalid object.
796
+ //
797
+ function writeNode(state, level, object, block, compact, iskey, isblockseq) {
798
+ state.tag = null;
799
+ state.dump = object;
800
+
801
+ if (!detectType(state, object, false)) {
802
+ detectType(state, object, true);
803
+ }
804
+
805
+ var type = _toString.call(state.dump);
806
+ var inblock = block;
807
+ var tagStr;
808
+
809
+ if (block) {
810
+ block = (state.flowLevel < 0 || state.flowLevel > level);
811
+ }
812
+
813
+ var objectOrArray = type === '[object Object]' || type === '[object Array]',
814
+ duplicateIndex,
815
+ duplicate;
816
+
817
+ if (objectOrArray) {
818
+ duplicateIndex = state.duplicates.indexOf(object);
819
+ duplicate = duplicateIndex !== -1;
820
+ }
821
+
822
+ if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {
823
+ compact = false;
824
+ }
825
+
826
+ if (duplicate && state.usedDuplicates[duplicateIndex]) {
827
+ state.dump = '*ref_' + duplicateIndex;
828
+ } else {
829
+ if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {
830
+ state.usedDuplicates[duplicateIndex] = true;
831
+ }
832
+ if (type === '[object Object]') {
833
+ if (block && (Object.keys(state.dump).length !== 0)) {
834
+ writeBlockMapping(state, level, state.dump, compact);
835
+ if (duplicate) {
836
+ state.dump = '&ref_' + duplicateIndex + state.dump;
837
+ }
838
+ } else {
839
+ writeFlowMapping(state, level, state.dump);
840
+ if (duplicate) {
841
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
842
+ }
843
+ }
844
+ } else if (type === '[object Array]') {
845
+ if (block && (state.dump.length !== 0)) {
846
+ if (state.noArrayIndent && !isblockseq && level > 0) {
847
+ writeBlockSequence(state, level - 1, state.dump, compact);
848
+ } else {
849
+ writeBlockSequence(state, level, state.dump, compact);
850
+ }
851
+ if (duplicate) {
852
+ state.dump = '&ref_' + duplicateIndex + state.dump;
853
+ }
854
+ } else {
855
+ writeFlowSequence(state, level, state.dump);
856
+ if (duplicate) {
857
+ state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;
858
+ }
859
+ }
860
+ } else if (type === '[object String]') {
861
+ if (state.tag !== '?') {
862
+ writeScalar(state, state.dump, level, iskey, inblock);
863
+ }
864
+ } else if (type === '[object Undefined]') {
865
+ return false;
866
+ } else {
867
+ if (state.skipInvalid) return false;
868
+ throw new YAMLException('unacceptable kind of an object to dump ' + type);
869
+ }
870
+
871
+ if (state.tag !== null && state.tag !== '?') {
872
+ // Need to encode all characters except those allowed by the spec:
873
+ //
874
+ // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */
875
+ // [36] ns-hex-digit ::= ns-dec-digit
876
+ // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */
877
+ // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */
878
+ // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-”
879
+ // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#”
880
+ // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,”
881
+ // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]”
882
+ //
883
+ // Also need to encode '!' because it has special meaning (end of tag prefix).
884
+ //
885
+ tagStr = encodeURI(
886
+ state.tag[0] === '!' ? state.tag.slice(1) : state.tag
887
+ ).replace(/!/g, '%21');
888
+
889
+ if (state.tag[0] === '!') {
890
+ tagStr = '!' + tagStr;
891
+ } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') {
892
+ tagStr = '!!' + tagStr.slice(18);
893
+ } else {
894
+ tagStr = '!<' + tagStr + '>';
895
+ }
896
+
897
+ state.dump = tagStr + ' ' + state.dump;
898
+ }
899
+ }
900
+
901
+ return true;
902
+ }
903
+
904
+ function getDuplicateReferences(object, state) {
905
+ var objects = [],
906
+ duplicatesIndexes = [],
907
+ index,
908
+ length;
909
+
910
+ inspectNode(object, objects, duplicatesIndexes);
911
+
912
+ for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {
913
+ state.duplicates.push(objects[duplicatesIndexes[index]]);
914
+ }
915
+ state.usedDuplicates = new Array(length);
916
+ }
917
+
918
+ function inspectNode(object, objects, duplicatesIndexes) {
919
+ var objectKeyList,
920
+ index,
921
+ length;
922
+
923
+ if (object !== null && typeof object === 'object') {
924
+ index = objects.indexOf(object);
925
+ if (index !== -1) {
926
+ if (duplicatesIndexes.indexOf(index) === -1) {
927
+ duplicatesIndexes.push(index);
928
+ }
929
+ } else {
930
+ objects.push(object);
931
+
932
+ if (Array.isArray(object)) {
933
+ for (index = 0, length = object.length; index < length; index += 1) {
934
+ inspectNode(object[index], objects, duplicatesIndexes);
935
+ }
936
+ } else {
937
+ objectKeyList = Object.keys(object);
938
+
939
+ for (index = 0, length = objectKeyList.length; index < length; index += 1) {
940
+ inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);
941
+ }
942
+ }
943
+ }
944
+ }
945
+ }
946
+
947
+ function dump(input, options) {
948
+ options = options || {};
949
+
950
+ var state = new State(options);
951
+
952
+ if (!state.noRefs) getDuplicateReferences(input, state);
953
+
954
+ var value = input;
955
+
956
+ if (state.replacer) {
957
+ value = state.replacer.call({ '': value }, '', value);
958
+ }
959
+
960
+ if (writeNode(state, 0, value, true, true)) return state.dump + '\n';
961
+
962
+ return '';
963
+ }
964
+
965
+ module.exports.dump = dump;