 9bdcbe0447
			
		
	
	9bdcbe0447
	
	
	
		
			
			Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			227 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package basicnode
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"math"
 | |
| 
 | |
| 	"github.com/ipld/go-ipld-prime/datamodel"
 | |
| 	"github.com/ipld/go-ipld-prime/node/mixins"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	_ datamodel.Node          = plainInt(0)
 | |
| 	_ datamodel.Node          = plainUint(0)
 | |
| 	_ datamodel.UintNode      = plainUint(0)
 | |
| 	_ datamodel.NodePrototype = Prototype__Int{}
 | |
| 	_ datamodel.NodeBuilder   = &plainInt__Builder{}
 | |
| 	_ datamodel.NodeAssembler = &plainInt__Assembler{}
 | |
| )
 | |
| 
 | |
| func NewInt(value int64) datamodel.Node {
 | |
| 	return plainInt(value)
 | |
| }
 | |
| 
 | |
| // NewUint creates a new uint64-backed Node which will behave as a plain Int
 | |
| // node but also conforms to the datamodel.UintNode interface which can access
 | |
| // the full uint64 range.
 | |
| //
 | |
| // EXPERIMENTAL: this API is experimental and may be changed or removed in a
 | |
| // future release.
 | |
| func NewUint(value uint64) datamodel.Node {
 | |
| 	return plainUint(value)
 | |
| }
 | |
| 
 | |
| // plainInt is a simple boxed int that complies with datamodel.Node.
 | |
| type plainInt int64
 | |
| 
 | |
| // -- Node interface methods for plainInt -->
 | |
| 
 | |
| func (plainInt) Kind() datamodel.Kind {
 | |
| 	return datamodel.Kind_Int
 | |
| }
 | |
| func (plainInt) LookupByString(string) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByString("")
 | |
| }
 | |
| func (plainInt) LookupByNode(key datamodel.Node) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByNode(nil)
 | |
| }
 | |
| func (plainInt) LookupByIndex(idx int64) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByIndex(0)
 | |
| }
 | |
| func (plainInt) LookupBySegment(seg datamodel.PathSegment) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupBySegment(seg)
 | |
| }
 | |
| func (plainInt) MapIterator() datamodel.MapIterator {
 | |
| 	return nil
 | |
| }
 | |
| func (plainInt) ListIterator() datamodel.ListIterator {
 | |
| 	return nil
 | |
| }
 | |
| func (plainInt) Length() int64 {
 | |
| 	return -1
 | |
| }
 | |
| func (plainInt) IsAbsent() bool {
 | |
| 	return false
 | |
| }
 | |
| func (plainInt) IsNull() bool {
 | |
| 	return false
 | |
| }
 | |
| func (plainInt) AsBool() (bool, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsBool()
 | |
| }
 | |
| func (n plainInt) AsInt() (int64, error) {
 | |
| 	return int64(n), nil
 | |
| }
 | |
| func (plainInt) AsFloat() (float64, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsFloat()
 | |
| }
 | |
| func (plainInt) AsString() (string, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsString()
 | |
| }
 | |
| func (plainInt) AsBytes() ([]byte, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsBytes()
 | |
| }
 | |
| func (plainInt) AsLink() (datamodel.Link, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsLink()
 | |
| }
 | |
| func (plainInt) Prototype() datamodel.NodePrototype {
 | |
| 	return Prototype__Int{}
 | |
| }
 | |
| 
 | |
| // plainUint is a simple boxed uint64 that complies with datamodel.Node,
 | |
| // allowing representation of the uint64 range above the int64 maximum via the
 | |
| // UintNode interface
 | |
| type plainUint uint64
 | |
| 
 | |
| // -- Node interface methods for plainUint -->
 | |
| 
 | |
| func (plainUint) Kind() datamodel.Kind {
 | |
| 	return datamodel.Kind_Int
 | |
| }
 | |
| func (plainUint) LookupByString(string) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByString("")
 | |
| }
 | |
| func (plainUint) LookupByNode(key datamodel.Node) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByNode(nil)
 | |
| }
 | |
| func (plainUint) LookupByIndex(idx int64) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupByIndex(0)
 | |
| }
 | |
| func (plainUint) LookupBySegment(seg datamodel.PathSegment) (datamodel.Node, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.LookupBySegment(seg)
 | |
| }
 | |
| func (plainUint) MapIterator() datamodel.MapIterator {
 | |
| 	return nil
 | |
| }
 | |
| func (plainUint) ListIterator() datamodel.ListIterator {
 | |
| 	return nil
 | |
| }
 | |
| func (plainUint) Length() int64 {
 | |
| 	return -1
 | |
| }
 | |
| func (plainUint) IsAbsent() bool {
 | |
| 	return false
 | |
| }
 | |
| func (plainUint) IsNull() bool {
 | |
| 	return false
 | |
| }
 | |
| func (plainUint) AsBool() (bool, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsBool()
 | |
| }
 | |
| func (n plainUint) AsInt() (int64, error) {
 | |
| 	if uint64(n) > uint64(math.MaxInt64) {
 | |
| 		return -1, fmt.Errorf("unsigned integer out of range of int64 type")
 | |
| 	}
 | |
| 	return int64(n), nil
 | |
| }
 | |
| func (plainUint) AsFloat() (float64, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsFloat()
 | |
| }
 | |
| func (plainUint) AsString() (string, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsString()
 | |
| }
 | |
| func (plainUint) AsBytes() ([]byte, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsBytes()
 | |
| }
 | |
| func (plainUint) AsLink() (datamodel.Link, error) {
 | |
| 	return mixins.Int{TypeName: "int"}.AsLink()
 | |
| }
 | |
| func (plainUint) Prototype() datamodel.NodePrototype {
 | |
| 	return Prototype__Int{}
 | |
| }
 | |
| 
 | |
| // allows plainUint to conform to the plainUint interface
 | |
| 
 | |
| func (n plainUint) AsUint() (uint64, error) {
 | |
| 	return uint64(n), nil
 | |
| }
 | |
| 
 | |
| // -- NodePrototype -->
 | |
| 
 | |
| type Prototype__Int struct{}
 | |
| 
 | |
| func (Prototype__Int) NewBuilder() datamodel.NodeBuilder {
 | |
| 	var w plainInt
 | |
| 	return &plainInt__Builder{plainInt__Assembler{w: &w}}
 | |
| }
 | |
| 
 | |
| // -- NodeBuilder -->
 | |
| 
 | |
| type plainInt__Builder struct {
 | |
| 	plainInt__Assembler
 | |
| }
 | |
| 
 | |
| func (nb *plainInt__Builder) Build() datamodel.Node {
 | |
| 	return nb.w
 | |
| }
 | |
| func (nb *plainInt__Builder) Reset() {
 | |
| 	var w plainInt
 | |
| 	*nb = plainInt__Builder{plainInt__Assembler{w: &w}}
 | |
| }
 | |
| 
 | |
| // -- NodeAssembler -->
 | |
| 
 | |
| type plainInt__Assembler struct {
 | |
| 	w *plainInt
 | |
| }
 | |
| 
 | |
| func (plainInt__Assembler) BeginMap(sizeHint int64) (datamodel.MapAssembler, error) {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.BeginMap(0)
 | |
| }
 | |
| func (plainInt__Assembler) BeginList(sizeHint int64) (datamodel.ListAssembler, error) {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.BeginList(0)
 | |
| }
 | |
| func (plainInt__Assembler) AssignNull() error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignNull()
 | |
| }
 | |
| func (plainInt__Assembler) AssignBool(bool) error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignBool(false)
 | |
| }
 | |
| func (na *plainInt__Assembler) AssignInt(v int64) error {
 | |
| 	*na.w = plainInt(v)
 | |
| 	return nil
 | |
| }
 | |
| func (plainInt__Assembler) AssignFloat(float64) error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignFloat(0)
 | |
| }
 | |
| func (plainInt__Assembler) AssignString(string) error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignString("")
 | |
| }
 | |
| func (plainInt__Assembler) AssignBytes([]byte) error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignBytes(nil)
 | |
| }
 | |
| func (plainInt__Assembler) AssignLink(datamodel.Link) error {
 | |
| 	return mixins.IntAssembler{TypeName: "int"}.AssignLink(nil)
 | |
| }
 | |
| func (na *plainInt__Assembler) AssignNode(v datamodel.Node) error {
 | |
| 	if v2, err := v.AsInt(); err != nil {
 | |
| 		return err
 | |
| 	} else {
 | |
| 		*na.w = plainInt(v2)
 | |
| 		return nil
 | |
| 	}
 | |
| }
 | |
| func (plainInt__Assembler) Prototype() datamodel.NodePrototype {
 | |
| 	return Prototype__Int{}
 | |
| }
 |