@zio.dev/zio-blocks 0.0.29 → 0.0.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/guides/compile-time-resource-safety-with-scope.md +997 -0
  2. package/guides/query-dsl-extending.md +1 -1
  3. package/guides/query-dsl-fluent-builder.md +203 -203
  4. package/guides/query-dsl-reified-optics.md +1 -1
  5. package/guides/query-dsl-sql.md +1 -1
  6. package/guides/zio-schema-migration.md +8 -8
  7. package/index.md +20 -14
  8. package/package.json +1 -1
  9. package/reference/codec.md +17 -17
  10. package/reference/context.md +49 -1
  11. package/reference/docs.md +1 -1
  12. package/reference/dynamic-schema.md +39 -42
  13. package/reference/formats.md +5 -11
  14. package/reference/json-schema.md +2 -2
  15. package/reference/json.md +34 -43
  16. package/reference/media-type.md +2 -2
  17. package/reference/modifier.md +4 -4
  18. package/reference/resource-management/defer-handle.md +246 -0
  19. package/reference/resource-management/finalization.md +286 -0
  20. package/reference/resource-management/finalizer.md +167 -0
  21. package/reference/{resource-management-di → resource-management}/index.md +3 -8
  22. package/reference/{resource-management-di → resource-management}/resource.md +532 -50
  23. package/reference/resource-management/scope.md +3026 -0
  24. package/reference/resource-management/unscoped.md +125 -0
  25. package/reference/{resource-management-di → resource-management}/wire.md +122 -28
  26. package/reference/schema-error.md +0 -1
  27. package/reference/schema-evolution/as.md +4 -4
  28. package/reference/schema-evolution/into.md +2 -2
  29. package/reference/schema-expr.md +2 -2
  30. package/reference/schema.md +9 -4
  31. package/reference/streams.md +989 -0
  32. package/reference/type-class-derivation.md +14 -15
  33. package/ringbuffer.md +1 -1
  34. package/sidebars.js +9 -4
  35. package/undocumented-report.md +1 -1
  36. package/reference/resource-management-di/scope.md +0 -1423
@@ -52,7 +52,7 @@ Since `SchemaExpr` is a sealed trait, you cannot add new cases to it. Instead, w
52
52
  This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md) and [Part 2: SQL Generation](./query-dsl-sql.md). You should be comfortable building `SchemaExpr` values and translating them to SQL.
53
53
 
54
54
  ```scala
55
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
55
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
56
56
  ```
57
57
 
58
58
  ```scala
@@ -57,7 +57,7 @@ In this guide, we solve both problems: bridge extensions eliminate `.toExpr`, an
57
57
  This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md), [Part 2: SQL Generation](./query-dsl-sql.md), and [Part 3: Extending the Expression Language](./query-dsl-extending.md).
58
58
 
59
59
  ```scala
60
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
60
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
61
61
  ```
62
62
 
63
63
  ## Domain Setup
@@ -338,42 +338,42 @@ val condition =
338
338
  // name = "name",
339
339
  // value = Primitive(
340
340
  // primitiveType = String(None),
341
- // typeId = Impl(
342
- // name = "String",
343
- // owner = Owner(List(Package("java"), Package("lang"))),
344
- // typeParams = List(),
345
- // typeArgs = List(),
346
- // defKind = Class(
347
- // isFinal = true,
348
- // isAbstract = false,
349
- // isCase = false,
350
- // isValue = false,
351
- // bases = List(
352
- // Ref(
353
- // Impl(
354
- // name = "CharSequence",
355
- // owner = Owner(
356
- // List(Package("java"), Package("lang"))
357
- // ),
358
- // typeParams = List(),
359
- // typeArgs = List(),
360
- // defKind = Trait(
361
- // isSealed = false,
362
- // bases = List()
363
- // ),
364
- // selfType = None,
365
- // aliasedTo = None,
366
- // representation = None,
367
- // annotations = List()
368
- // )
369
- // ),
370
- // Ref(
371
- // Impl(
372
- // name = "Comparable",
373
- // owner = Owner(
374
- // List(Package("java"), Package("lang"))
375
- // ),
376
- // typeParams = List(
341
+ // typeId = String,
342
+ // primitiveBinding = Primitive(),
343
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
344
+ // modifiers = List(),
345
+ // storedDefaultValue = None,
346
+ // storedExamples = List()
347
+ // ),
348
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
349
+ // modifiers = List()
350
+ // ),
351
+ // Term(
352
+ // name = "price",
353
+ // value = Primitive(
354
+ // primitiveType = Double(None),
355
+ // typeId = Double,
356
+ // primitiveBinding = Primitive(),
357
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
358
+ // modifiers = List(),
359
+ // storedDefaultValue = None,
360
+ // storedExamples = List()
361
+ // ),
362
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
363
+ // modifiers = List()
364
+ // ),
365
+ // Term(
366
+ // name = "category",
367
+ // value = Primitive(
368
+ // primitiveType = String(None),
369
+ // typeId = String,
370
+ // primitiveBinding = Primitive(),
371
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
372
+ // modifiers = List(),
373
+ // storedDefaultValue = None,
374
+ // storedExamples = List()
375
+ // ),
376
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
377
377
  // ...
378
378
 
379
379
  exprToSql(condition)
@@ -506,41 +506,41 @@ val basicSelect = select(Product.table)
506
506
  // name = "name",
507
507
  // value = Primitive(
508
508
  // primitiveType = String(None),
509
- // typeId = Impl(
510
- // name = "String",
511
- // owner = Owner(List(Package("java"), Package("lang"))),
512
- // typeParams = List(),
513
- // typeArgs = List(),
514
- // defKind = Class(
515
- // isFinal = true,
516
- // isAbstract = false,
517
- // isCase = false,
518
- // isValue = false,
519
- // bases = List(
520
- // Ref(
521
- // Impl(
522
- // name = "CharSequence",
523
- // owner = Owner(
524
- // List(Package("java"), Package("lang"))
525
- // ),
526
- // typeParams = List(),
527
- // typeArgs = List(),
528
- // defKind = Trait(isSealed = false, bases = List()),
529
- // selfType = None,
530
- // aliasedTo = None,
531
- // representation = None,
532
- // annotations = List()
533
- // )
534
- // ),
535
- // Ref(
536
- // Impl(
537
- // name = "Comparable",
538
- // owner = Owner(
539
- // List(Package("java"), Package("lang"))
540
- // ),
541
- // typeParams = List(
542
- // TypeParam(
543
- // name = "T",
509
+ // typeId = String,
510
+ // primitiveBinding = Primitive(),
511
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
512
+ // modifiers = List(),
513
+ // storedDefaultValue = None,
514
+ // storedExamples = List()
515
+ // ),
516
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
517
+ // modifiers = List()
518
+ // ),
519
+ // Term(
520
+ // name = "price",
521
+ // value = Primitive(
522
+ // primitiveType = Double(None),
523
+ // typeId = Double,
524
+ // primitiveBinding = Primitive(),
525
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
526
+ // modifiers = List(),
527
+ // storedDefaultValue = None,
528
+ // storedExamples = List()
529
+ // ),
530
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
531
+ // modifiers = List()
532
+ // ),
533
+ // Term(
534
+ // name = "category",
535
+ // value = Primitive(
536
+ // primitiveType = String(None),
537
+ // typeId = String,
538
+ // primitiveBinding = Primitive(),
539
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
540
+ // modifiers = List(),
541
+ // storedDefaultValue = None,
542
+ // storedExamples = List()
543
+ // ),
544
544
  // ...
545
545
 
546
546
  renderSelect(basicSelect)
@@ -572,39 +572,39 @@ val advancedSelect = select(Product.table)
572
572
  // name = "name",
573
573
  // value = Primitive(
574
574
  // primitiveType = String(None),
575
- // typeId = Impl(
576
- // name = "String",
577
- // owner = Owner(List(Package("java"), Package("lang"))),
578
- // typeParams = List(),
579
- // typeArgs = List(),
580
- // defKind = Class(
581
- // isFinal = true,
582
- // isAbstract = false,
583
- // isCase = false,
584
- // isValue = false,
585
- // bases = List(
586
- // Ref(
587
- // Impl(
588
- // name = "CharSequence",
589
- // owner = Owner(
590
- // List(Package("java"), Package("lang"))
591
- // ),
592
- // typeParams = List(),
593
- // typeArgs = List(),
594
- // defKind = Trait(
595
- // isSealed = false,
596
- // bases = List()
597
- // ),
598
- // selfType = None,
599
- // aliasedTo = None,
600
- // representation = None,
601
- // annotations = List()
602
- // )
603
- // ),
604
- // Ref(
605
- // Impl(
606
- // name = "Comparable",
607
- // owner = Owner(
575
+ // typeId = String,
576
+ // primitiveBinding = Primitive(),
577
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
578
+ // modifiers = List(),
579
+ // storedDefaultValue = None,
580
+ // storedExamples = List()
581
+ // ),
582
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
583
+ // modifiers = List()
584
+ // ),
585
+ // Term(
586
+ // name = "price",
587
+ // value = Primitive(
588
+ // primitiveType = Double(None),
589
+ // typeId = Double,
590
+ // primitiveBinding = Primitive(),
591
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
592
+ // modifiers = List(),
593
+ // storedDefaultValue = None,
594
+ // storedExamples = List()
595
+ // ),
596
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
597
+ // modifiers = List()
598
+ // ),
599
+ // Term(
600
+ // name = "category",
601
+ // value = Primitive(
602
+ // primitiveType = String(None),
603
+ // typeId = String,
604
+ // primitiveBinding = Primitive(),
605
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
606
+ // modifiers = List(),
607
+ // storedDefaultValue = None,
608
608
  // ...
609
609
 
610
610
  renderSelect(advancedSelect)
@@ -671,37 +671,37 @@ val basicUpdate =
671
671
  // name = "name",
672
672
  // value = Primitive(
673
673
  // primitiveType = String(None),
674
- // typeId = Impl(
675
- // name = "String",
676
- // owner = Owner(
677
- // List(Package("java"), Package("lang"))
678
- // ),
679
- // typeParams = List(),
680
- // typeArgs = List(),
681
- // defKind = Class(
682
- // isFinal = true,
683
- // isAbstract = false,
684
- // isCase = false,
685
- // isValue = false,
686
- // bases = List(
687
- // Ref(
688
- // Impl(
689
- // name = "CharSequence",
690
- // owner = Owner(
691
- // List(Package("java"), Package("lang"))
692
- // ),
693
- // typeParams = List(),
694
- // typeArgs = List(),
695
- // defKind = Trait(
696
- // isSealed = false,
697
- // bases = List()
698
- // ),
699
- // selfType = None,
700
- // aliasedTo = None,
701
- // representation = None,
702
- // annotations = List()
703
- // )
704
- // ),
674
+ // typeId = String,
675
+ // primitiveBinding = Primitive(),
676
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
677
+ // modifiers = List(),
678
+ // storedDefaultValue = None,
679
+ // storedExamples = List()
680
+ // ),
681
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
682
+ // modifiers = List()
683
+ // ),
684
+ // Term(
685
+ // name = "price",
686
+ // value = Primitive(
687
+ // primitiveType = Double(None),
688
+ // typeId = Double,
689
+ // primitiveBinding = Primitive(),
690
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
691
+ // modifiers = List(),
692
+ // storedDefaultValue = None,
693
+ // storedExamples = List()
694
+ // ),
695
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
696
+ // modifiers = List()
697
+ // ),
698
+ // Term(
699
+ // name = "category",
700
+ // value = Primitive(
701
+ // primitiveType = String(None),
702
+ // typeId = String,
703
+ // primitiveBinding = Primitive(),
704
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
705
705
  // ...
706
706
 
707
707
  renderUpdate(basicUpdate)
@@ -733,38 +733,38 @@ val multiUpdate =
733
733
  // name = "name",
734
734
  // value = Primitive(
735
735
  // primitiveType = String(None),
736
- // typeId = Impl(
737
- // name = "String",
738
- // owner = Owner(List(Package("java"), Package("lang"))),
739
- // typeParams = List(),
740
- // typeArgs = List(),
741
- // defKind = Class(
742
- // isFinal = true,
743
- // isAbstract = false,
744
- // isCase = false,
745
- // isValue = false,
746
- // bases = List(
747
- // Ref(
748
- // Impl(
749
- // name = "CharSequence",
750
- // owner = Owner(
751
- // List(Package("java"), Package("lang"))
752
- // ),
753
- // typeParams = List(),
754
- // typeArgs = List(),
755
- // defKind = Trait(isSealed = false, bases = List()),
756
- // selfType = None,
757
- // aliasedTo = None,
758
- // representation = None,
759
- // annotations = List()
760
- // )
761
- // ),
762
- // Ref(
763
- // Impl(
764
- // name = "Comparable",
765
- // owner = Owner(
766
- // List(Package("java"), Package("lang"))
767
- // ),
736
+ // typeId = String,
737
+ // primitiveBinding = Primitive(),
738
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
739
+ // modifiers = List(),
740
+ // storedDefaultValue = None,
741
+ // storedExamples = List()
742
+ // ),
743
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
744
+ // modifiers = List()
745
+ // ),
746
+ // Term(
747
+ // name = "price",
748
+ // value = Primitive(
749
+ // primitiveType = Double(None),
750
+ // typeId = Double,
751
+ // primitiveBinding = Primitive(),
752
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
753
+ // modifiers = List(),
754
+ // storedDefaultValue = None,
755
+ // storedExamples = List()
756
+ // ),
757
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
758
+ // modifiers = List()
759
+ // ),
760
+ // Term(
761
+ // name = "category",
762
+ // value = Primitive(
763
+ // primitiveType = String(None),
764
+ // typeId = String,
765
+ // primitiveBinding = Primitive(),
766
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
767
+ // modifiers = List(),
768
768
  // ...
769
769
 
770
770
  renderUpdate(multiUpdate)
@@ -854,41 +854,41 @@ val del = deleteFrom(Product.table)
854
854
  // name = "name",
855
855
  // value = Primitive(
856
856
  // primitiveType = String(None),
857
- // typeId = Impl(
858
- // name = "String",
859
- // owner = Owner(List(Package("java"), Package("lang"))),
860
- // typeParams = List(),
861
- // typeArgs = List(),
862
- // defKind = Class(
863
- // isFinal = true,
864
- // isAbstract = false,
865
- // isCase = false,
866
- // isValue = false,
867
- // bases = List(
868
- // Ref(
869
- // Impl(
870
- // name = "CharSequence",
871
- // owner = Owner(
872
- // List(Package("java"), Package("lang"))
873
- // ),
874
- // typeParams = List(),
875
- // typeArgs = List(),
876
- // defKind = Trait(
877
- // isSealed = false,
878
- // bases = List()
879
- // ),
880
- // selfType = None,
881
- // aliasedTo = None,
882
- // representation = None,
883
- // annotations = List()
884
- // )
885
- // ),
886
- // Ref(
887
- // Impl(
888
- // name = "Comparable",
889
- // owner = Owner(
890
- // List(Package("java"), Package("lang"))
891
- // ),
857
+ // typeId = String,
858
+ // primitiveBinding = Primitive(),
859
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
860
+ // modifiers = List(),
861
+ // storedDefaultValue = None,
862
+ // storedExamples = List()
863
+ // ),
864
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
865
+ // modifiers = List()
866
+ // ),
867
+ // Term(
868
+ // name = "price",
869
+ // value = Primitive(
870
+ // primitiveType = Double(None),
871
+ // typeId = Double,
872
+ // primitiveBinding = Primitive(),
873
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
874
+ // modifiers = List(),
875
+ // storedDefaultValue = None,
876
+ // storedExamples = List()
877
+ // ),
878
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
879
+ // modifiers = List()
880
+ // ),
881
+ // Term(
882
+ // name = "category",
883
+ // value = Primitive(
884
+ // primitiveType = String(None),
885
+ // typeId = String,
886
+ // primitiveBinding = Primitive(),
887
+ // doc = Doc(blocks = IndexedSeq(), metadata = Map()),
888
+ // modifiers = List(),
889
+ // storedDefaultValue = None,
890
+ // storedExamples = List()
891
+ // ),
892
892
  // ...
893
893
 
894
894
  renderDelete(del)
@@ -43,7 +43,7 @@ In this guide, we'll solve this by using ZIO Blocks' `SchemaExpr` and reified op
43
43
  Add the ZIO Blocks Schema dependency:
44
44
 
45
45
  ```scala
46
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
46
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
47
47
  ```
48
48
 
49
49
  ```scala
@@ -43,7 +43,7 @@ Since `SchemaExpr` is a sealed trait, we can write a single interpreter that tra
43
43
  This guide builds on [Part 1: Expressions](./query-dsl-reified-optics.md). You should be comfortable building `SchemaExpr` values with optic operators (`===`, `>`, `&&`, etc.).
44
44
 
45
45
  ```scala
46
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
46
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
47
47
  ```
48
48
 
49
49
  ```scala
@@ -38,13 +38,13 @@ libraryDependencies += "dev.zio" %% "zio-schema-avro" % "1.x.x"
38
38
  **After (ZIO Blocks Schema):**
39
39
 
40
40
  ```scala
41
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
41
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
42
42
  // Optional codec modules:
43
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.29"
44
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.29"
45
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.29"
46
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.29"
47
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.29"
43
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.31"
44
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.31"
45
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.31"
46
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.31"
47
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.31"
48
48
  ```
49
49
 
50
50
  Key points:
@@ -536,7 +536,7 @@ val protoCodec: BinaryCodec[Person] = ProtobufCodec.protobufCodec(Person.schema)
536
536
  // ZIO Blocks Schema — all codecs via schema.derive(Format); return type inferred
537
537
  import zio.blocks.schema._
538
538
  import zio.blocks.schema.json.JsonFormat
539
- val jsonCodec = Person.schema.derive(JsonFormat) // inferred: JsonBinaryCodec[Person]
539
+ val jsonCodec = Person.schema.derive(JsonFormat) // inferred: JsonCodec[Person]
540
540
 
541
541
  import zio.blocks.schema.avro.AvroFormat
542
542
  val avroCodec = Person.schema.derive(AvroFormat)
@@ -593,7 +593,7 @@ val codec = JsonCodec.jsonCodec(Person.schema) // returns zio.json.JsonCodec
593
593
 
594
594
  // ZIO Blocks Schema — built into zio-blocks-schema; no extra dependency
595
595
  import zio.blocks.schema.json.JsonFormat
596
- val codec = Person.schema.derive(JsonFormat) // returns JsonBinaryCodec[Person]
596
+ val codec = Person.schema.derive(JsonFormat) // returns JsonCodec[Person]
597
597
  ```
598
598
 
599
599
  ### Streaming Codecs
package/index.md CHANGED
@@ -82,14 +82,14 @@ val thriftCodec = Schema[Person].derive(ThriftFormat) // Thrift
82
82
  ### Installation
83
83
 
84
84
  ```scala
85
- libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.29"
85
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema" % "0.0.31"
86
86
 
87
87
  // Optional format modules:
88
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.29"
89
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.29"
90
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.29"
91
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.29"
92
- libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.29"
88
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-avro" % "0.0.31"
89
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-toon" % "0.0.31"
90
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-messagepack" % "0.0.31"
91
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-thrift" % "0.0.31"
92
+ libraryDependencies += "dev.zio" %% "zio-blocks-schema-bson" % "0.0.31"
93
93
  ```
94
94
 
95
95
  ### Example: Optics
@@ -144,7 +144,7 @@ Chunk is designed for:
144
144
  ### Installation
145
145
 
146
146
  ```scala
147
- libraryDependencies += "dev.zio" %% "zio-blocks-chunk" % "0.0.29"
147
+ libraryDependencies += "dev.zio" %% "zio-blocks-chunk" % "0.0.31"
148
148
  ```
149
149
 
150
150
  ### Example
@@ -233,7 +233,7 @@ Scope.global.scoped { scope =>
233
233
  ### Installation
234
234
 
235
235
  ```scala
236
- libraryDependencies += "dev.zio" %% "zio-blocks-scope" % "0.0.29"
236
+ libraryDependencies += "dev.zio" %% "zio-blocks-scope" % "0.0.31"
237
237
  ```
238
238
 
239
239
  ### Example: Basic Resource Management
@@ -310,6 +310,12 @@ Scope.global.scoped { connScope =>
310
310
  // Connection closed here
311
311
  ```
312
312
 
313
+ ### Getting Started
314
+
315
+ New to Scope? Check out the [Scope Tutorial](./guides/compile-time-resource-safety-with-scope.md) for a comprehensive step-by-step guide that walks you through the concepts, patterns, and real-world examples. The tutorial is designed for newcomers and covers everything from basic resource management to advanced dependency injection.
316
+
317
+ For detailed API documentation, see the [Scope Reference](./reference/resource-management/scope.md).
318
+
313
319
  ---
314
320
 
315
321
  ## Docs
@@ -336,7 +342,7 @@ Generating documentation, README files, or any Markdown content programmatically
336
342
  ### Installation
337
343
 
338
344
  ```scala
339
- libraryDependencies += "dev.zio" %% "zio-blocks-docs" % "0.0.29"
345
+ libraryDependencies += "dev.zio" %% "zio-blocks-docs" % "0.0.31"
340
346
  ```
341
347
 
342
348
  ### Example
@@ -420,7 +426,7 @@ Compile-time type identity with rich metadata. TypeId captures comprehensive inf
420
426
  ### Installation
421
427
 
422
428
  ```scala
423
- libraryDependencies += "dev.zio" %% "zio-blocks-typeid" % "0.0.29"
429
+ libraryDependencies += "dev.zio" %% "zio-blocks-typeid" % "0.0.31"
424
430
  ```
425
431
 
426
432
  ### Example
@@ -463,7 +469,7 @@ A type-indexed heterogeneous collection that stores values by their types with c
463
469
  ### Installation
464
470
 
465
471
  ```scala
466
- libraryDependencies += "dev.zio" %% "zio-blocks-context" % "0.0.29"
472
+ libraryDependencies += "dev.zio" %% "zio-blocks-context" % "0.0.31"
467
473
  ```
468
474
 
469
475
  ### Example
@@ -515,7 +521,7 @@ Standard `java.util.concurrent` queues use node allocation (`ConcurrentLinkedQue
515
521
  ### Installation
516
522
 
517
523
  ```scala
518
- libraryDependencies += "dev.zio" %% "zio-blocks-ringbuffer" % "0.0.29"
524
+ libraryDependencies += "dev.zio" %% "zio-blocks-ringbuffer" % "0.0.31"
519
525
  ```
520
526
 
521
527
  ### Example
@@ -614,8 +620,8 @@ ZIO Blocks supports **Scala 2.13** and **Scala 3.x** with full source compatibil
614
620
  ### Other Blocks
615
621
 
616
622
  - [Chunk](./reference/chunk.md) - High-performance immutable sequences
617
- - [Scope](./reference/resource-management-di/scope.md) - Compile-time safe resource management and DI
618
- - [Wire](./reference/resource-management-di/wire.md) - Recipes for constructing services and dependencies
623
+ - [Scope](./reference/resource-management/scope.md) - Compile-time safe resource management and DI
624
+ - [Wire](./reference/resource-management/wire.md) - Recipes for constructing services and dependencies
619
625
  - [TypeId](./reference/typeid.md) - Type identity and metadata
620
626
  - [Context](./reference/context.md) - Type-indexed heterogeneous collections
621
627
  - [Docs (Markdown)](./reference/docs.md) - Markdown parsing and rendering