@@ -277,6 +277,338 @@ declare module Backendless {
277277 function mapTableToClass ( clientClass : Function ) : void ;
278278 }
279279
280+ /**
281+ * @public
282+ * @type : Function
283+ **/
284+ function Hive ( hiveName : string ) : Backendless . Hive . DataHive ;
285+
286+ /**
287+ * @public
288+ * @namespace Backendless.Hive
289+ */
290+ namespace Hive {
291+ /**
292+ * @public
293+ * @type : Function
294+ */
295+ function getNames ( ) : Array < string >
296+
297+ /**
298+ * @public
299+ * @class Backendless.Hive.DataHive
300+ * @constructor
301+ */
302+ class DataHive {
303+ constructor ( hiveName : string , appContext : object ) ;
304+
305+ create ( ) : Promise < void >
306+
307+ delete ( ) : Promise < void >
308+
309+ rename ( newName : string ) : Promise < void >
310+
311+ KeyValueStore : KeyValueStore ;
312+ ListStore : ListStore ;
313+ MapStore : MapStore ;
314+ SetStore : SetStore ;
315+ SortedSetStore : SortedSetStore ;
316+ }
317+
318+ interface StoreKeysOptionsI {
319+ filterPattern ?: string ;
320+ cursor ?: number ;
321+ pageSize ?: number ;
322+ }
323+
324+ interface StoreKeysResultI {
325+ keys : string [ ] ;
326+ cursorId : string ;
327+ }
328+
329+ /**
330+ * @private
331+ */
332+ interface HiveStore {
333+ keys ( options ?: StoreKeysOptionsI ) : Promise < StoreKeysResultI > ;
334+
335+ delete ( keys : Array < string > ) : Promise < void > ;
336+
337+ exists ( keys : Array < string > ) : Promise < number > ;
338+
339+ touch ( keys : Array < string > ) : Promise < void > ;
340+ }
341+
342+ /**
343+ * @private
344+ */
345+ interface hiveStore {
346+
347+ delete ( ) : Promise < number > ;
348+
349+ rename ( newKeyName : string , overwrite ?: boolean ) : Promise < void > ;
350+
351+ exists ( ) : Promise < boolean > ;
352+
353+ getExpiration ( ) : Promise < number > ;
354+
355+ clearExpiration ( ) : Promise < void > ;
356+
357+ touch ( ) : Promise < void > ;
358+
359+ secondsSinceLastOperation ( ) : Promise < number > ;
360+
361+ expireAfter ( ttl : number ) : Promise < void > ;
362+
363+ expireAt ( timestamp : number ) : Promise < void > ;
364+ }
365+
366+ interface KeyValueSetKeyOptionsI {
367+ ttl ?: Number ; // in seconds
368+ expireAt ?: Number ; // timestamp
369+ condition ?: 'IfExists' | 'IfNotExists' | 'Always' ; //if not provided set anyway
370+ }
371+
372+ /**
373+ * @public
374+ */
375+ interface KeyValueStore extends HiveStore {
376+ ( keyName : string ) : keyValueStore
377+
378+ get ( keys : Array < string > ) : Promise < object > ;
379+
380+ set ( key : string , value : string , options ?: KeyValueSetKeyOptionsI ) : Promise < boolean > ;
381+
382+ set ( keysMap : object ) : Promise < boolean > ;
383+ }
384+
385+ /**
386+ * @public
387+ */
388+ interface keyValueStore extends hiveStore {
389+ get ( ) : Promise < string | null > ;
390+
391+ set ( value : string , options ?: KeyValueSetKeyOptionsI ) : Promise < void > ;
392+
393+ increment ( value : number ) : Promise < number > ;
394+
395+ decrement ( value : number ) : Promise < number > ;
396+ }
397+
398+ /**
399+ * @public
400+ */
401+ interface ListStore extends HiveStore {
402+ ( keyName : string ) : listStore
403+ }
404+
405+ /**
406+ * @public
407+ */
408+ interface listStore extends hiveStore {
409+ get ( ) : Promise < Array < string > > ;
410+
411+ get ( index : number ) : Promise < string | null > ;
412+
413+ get ( indexFrom : number , indexTo : number ) : Promise < Array < string > > ;
414+
415+ set ( values : Array < string > ) : Promise < number > ;
416+
417+ set ( value : string , index : number ) : Promise < void > ;
418+
419+ insertBefore ( valueToInsert : string , anchorValue : string ) : Promise < number > ;
420+
421+ insertAfter ( valueToInsert : string , anchorValue : string ) : Promise < number > ;
422+
423+ length ( ) : Promise < number > ;
424+
425+ addFirst ( value : string ) : Promise < number >
426+
427+ addFirst ( values : Array < string > ) : Promise < number >
428+
429+ addLast ( value : string ) : Promise < number >
430+
431+ addLast ( values : Array < string > ) : Promise < number >
432+
433+ deleteFirst ( ) : Promise < string | null >
434+
435+ deleteFirst ( count : number ) : Promise < Array < string > | null >
436+
437+ deleteLast ( ) : Promise < string | null >
438+
439+ deleteLast ( count : number ) : Promise < Array < string > | null >
440+
441+ deleteValue ( value : string , count ?: number ) : Promise < number >
442+ }
443+
444+ /**
445+ * @public
446+ */
447+ interface MapStore extends HiveStore {
448+ ( keyName : string ) : mapStore
449+ }
450+
451+ /**
452+ * @public
453+ */
454+ interface mapStore extends hiveStore {
455+
456+ get ( ) : Promise < object > ;
457+
458+ get ( key : string ) : Promise < object > ;
459+
460+ get ( keys : Array < string > ) : Promise < object > ;
461+
462+ getValue ( key : string ) : Promise < string | null > ;
463+
464+ keyExists ( key : string ) : Promise < boolean > ;
465+
466+ length ( ) : Promise < number > ;
467+
468+ keys ( ) : Promise < Array < string > > ;
469+
470+ values ( ) : Promise < Array < string > > ;
471+
472+ set ( data : object ) : Promise < number > ;
473+
474+ set ( key : string , value : string ) : Promise < boolean > ;
475+
476+ setWithOverwrite ( key : string , value : string , overwrite ?: boolean ) : Promise < boolean > ;
477+
478+ add ( data : object ) : Promise < number > ;
479+
480+ increment ( key : string , count ?: number ) : Promise < number > ;
481+
482+ decrement ( key : string , count ?: number ) : Promise < number > ;
483+
484+ deleteKeys ( key : string ) : Promise < number > ;
485+
486+ deleteKeys ( keys : Array < string > ) : Promise < number > ;
487+ }
488+
489+ /**
490+ * @public
491+ */
492+ interface SetStore extends HiveStore {
493+ ( keyName : string ) : setStore ;
494+
495+ difference ( storeKeys : Array < string > ) : Promise < Array < string > > ;
496+
497+ intersection ( storeKeys : Array < string > ) : Promise < Array < string > > ;
498+
499+ union ( storeKeys : Array < string > ) : Promise < Array < string > > ;
500+ }
501+
502+ /**
503+ * @public
504+ */
505+ interface setStore extends hiveStore {
506+
507+ get ( ) : Promise < Array < string > > ;
508+
509+ getRandom ( count ?: number ) : Promise < Array < string > > ;
510+
511+ getRandomAndDelete ( count ?: number ) : Promise < Array < string > > ;
512+
513+ set ( value : string ) : Promise < number > ;
514+
515+ set ( values : Array < string > ) : Promise < number > ;
516+
517+ add ( value : string ) : Promise < number > ;
518+
519+ add ( values : Array < string > ) : Promise < number > ;
520+
521+ deleteValues ( value : string ) : Promise < number > ;
522+
523+ deleteValues ( values : Array < string > ) : Promise < number > ;
524+
525+ isMember ( value : string | Array < string > ) : Promise < Array < string > > ;
526+
527+ length ( ) : Promise < number > ;
528+ }
529+
530+ type SortedSetItem = [ number , string ]
531+ type SortedSetBound = 'Include' | 'Exclude' | 'Infinity'
532+
533+ interface SortedSetItemOptionsI {
534+ duplicateBehaviour ?: 'OnlyUpdate' | 'AlwaysAdd' ;
535+ scoreUpdateMode ?: 'Greater' | 'Less' ;
536+ resultType ?: 'NewAdded' | 'TotalChanged' ;
537+ }
538+
539+ interface SortedSetFilterI {
540+ minScore ?: number ,
541+ maxScore ?: number ,
542+ minBound ?: SortedSetBound ,
543+ maxBound ?: SortedSetBound ,
544+ }
545+
546+ /**
547+ * @public
548+ */
549+ interface SortedSetStore extends HiveStore {
550+ ( keyName : string ) : sortedSetStore
551+
552+ difference ( storeKeys : Array < string > ) : Promise < Array < string > > ;
553+
554+ intersection ( storeKeys : Array < string > ) : Promise < Array < string > > ;
555+
556+ union ( storeKeys : Array < string > ) : Promise < Array < string > > ;
557+ }
558+
559+ /**
560+ * @public
561+ */
562+ interface sortedSetStore extends hiveStore {
563+
564+ add ( items : Array < SortedSetItem > , options ?: SortedSetItemOptionsI ) : Promise < number >
565+
566+ set ( items : Array < SortedSetItem > , options ?: SortedSetItemOptionsI ) : Promise < number >
567+
568+ incrementScore ( value : string , scoreValue : number ) : Promise < number >
569+
570+ decrementScore ( value : string , scoreValue : number ) : Promise < number >
571+
572+ getAndDeleteMaxScore ( count ?: number ) : Promise < Array < SortedSetItem > >
573+
574+ getAndDeleteMinScore ( count ?: number ) : Promise < Array < SortedSetItem > >
575+
576+ getRandom < T = SortedSetItem | string > ( options ?: { count ?: number , withScores ?: boolean } ) : Promise < Array < T > >
577+
578+ getScore ( value : string ) : Promise < number >
579+
580+ getRank ( value : string , reverse ?: boolean ) : Promise < number >
581+
582+ getRangeByRank < T = SortedSetItem | string > ( startRank : number , stopRank : number , options ?: {
583+ reverse ?: boolean ,
584+ withScores ?: boolean
585+ } ) : Promise < Array < T > >
586+
587+ getRangeByScore < T = SortedSetItem | string > ( options ?: {
588+ minScore ?: number ,
589+ maxScore ?: number ,
590+ minBound ?: SortedSetBound ,
591+ maxBound ?: SortedSetBound ,
592+ offset ?: number ,
593+ count ?: number
594+ reverse ?: boolean ,
595+ withScores ?: boolean
596+ } ) : Promise < Array < T > >
597+
598+ deleteValues ( value : string ) : Promise < number > ;
599+
600+ deleteValues ( values : Array < string > ) : Promise < number > ;
601+
602+ deleteValuesByRank ( startRank : number , stopRank : number ) : Promise < number > ;
603+
604+ deleteValuesByScore ( options ?: SortedSetFilterI ) : Promise < number > ;
605+
606+ length ( ) : Promise < number > ;
607+
608+ countBetweenScores ( options ?: SortedSetFilterI ) : Promise < number > ;
609+ }
610+ }
611+
280612 /**
281613 * @public
282614 * @namespace Backendless.UserService
0 commit comments