seroval 0.12.4 → 0.13.0

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 (137) hide show
  1. package/dist/cjs/development/index.cjs +1431 -958
  2. package/dist/cjs/development/index.cjs.map +3 -3
  3. package/dist/cjs/production/index.cjs +3 -3
  4. package/dist/esm/development/index.mjs +1431 -958
  5. package/dist/esm/development/index.mjs.map +3 -3
  6. package/dist/esm/production/index.mjs +3 -3
  7. package/dist/types/core/base-primitives.d.ts +12 -1
  8. package/dist/types/core/base-primitives.d.ts.map +1 -1
  9. package/dist/types/core/compat.d.ts +0 -2
  10. package/dist/types/core/compat.d.ts.map +1 -1
  11. package/dist/types/core/constants.d.ts +8 -2
  12. package/dist/types/core/constants.d.ts.map +1 -1
  13. package/dist/types/core/{tree/deserialize.d.ts → context/deserializer.d.ts} +19 -13
  14. package/dist/types/core/context/deserializer.d.ts.map +1 -0
  15. package/dist/types/core/{base → context/parser}/async.d.ts +6 -5
  16. package/dist/types/core/context/parser/async.d.ts.map +1 -0
  17. package/dist/types/core/{base → context/parser}/stream.d.ts +2 -1
  18. package/dist/types/core/context/parser/stream.d.ts.map +1 -0
  19. package/dist/types/core/{base → context/parser}/sync.d.ts +7 -9
  20. package/dist/types/core/context/parser/sync.d.ts.map +1 -0
  21. package/dist/types/core/context/parser.d.ts +27 -0
  22. package/dist/types/core/context/parser.d.ts.map +1 -0
  23. package/dist/types/core/{serializer-context.old.d.ts → context/serializer.d.ts} +21 -22
  24. package/dist/types/core/context/serializer.d.ts.map +1 -0
  25. package/dist/types/core/cross/async.d.ts +2 -2
  26. package/dist/types/core/cross/async.d.ts.map +1 -1
  27. package/dist/types/core/cross/deserializer.d.ts +9 -0
  28. package/dist/types/core/cross/deserializer.d.ts.map +1 -0
  29. package/dist/types/core/cross/index.d.ts +11 -1
  30. package/dist/types/core/cross/index.d.ts.map +1 -1
  31. package/dist/types/core/cross/parser.d.ts +6 -0
  32. package/dist/types/core/cross/parser.d.ts.map +1 -0
  33. package/dist/types/core/cross/{serialize.d.ts → serializer.d.ts} +6 -5
  34. package/dist/types/core/cross/serializer.d.ts.map +1 -0
  35. package/dist/types/core/cross/stream.d.ts +2 -2
  36. package/dist/types/core/cross/stream.d.ts.map +1 -1
  37. package/dist/types/core/cross/sync.d.ts +2 -2
  38. package/dist/types/core/cross/sync.d.ts.map +1 -1
  39. package/dist/types/core/keys.d.ts +3 -1
  40. package/dist/types/core/keys.d.ts.map +1 -1
  41. package/dist/types/core/plugin.d.ts +6 -7
  42. package/dist/types/core/plugin.d.ts.map +1 -1
  43. package/dist/types/core/special-reference.d.ts +6 -0
  44. package/dist/types/core/special-reference.d.ts.map +1 -0
  45. package/dist/types/core/tree/async.d.ts +2 -2
  46. package/dist/types/core/tree/async.d.ts.map +1 -1
  47. package/dist/types/core/tree/deserializer.d.ts +13 -0
  48. package/dist/types/core/tree/deserializer.d.ts.map +1 -0
  49. package/dist/types/core/tree/{serialize.d.ts → serializer.d.ts} +4 -4
  50. package/dist/types/core/tree/serializer.d.ts.map +1 -0
  51. package/dist/types/core/tree/sync.d.ts +2 -2
  52. package/dist/types/core/tree/sync.d.ts.map +1 -1
  53. package/dist/types/core/types.d.ts +47 -6
  54. package/dist/types/core/types.d.ts.map +1 -1
  55. package/dist/types/core/utils/assert.d.ts.map +1 -0
  56. package/dist/types/core/utils/constructors.d.ts.map +1 -0
  57. package/dist/types/core/utils/deferred.d.ts +14 -0
  58. package/dist/types/core/utils/deferred.d.ts.map +1 -0
  59. package/dist/types/core/utils/error.d.ts +5 -0
  60. package/dist/types/core/utils/error.d.ts.map +1 -0
  61. package/dist/types/core/utils/get-identifier.d.ts.map +1 -0
  62. package/dist/types/core/utils/get-object-flag.d.ts +3 -0
  63. package/dist/types/core/utils/get-object-flag.d.ts.map +1 -0
  64. package/dist/types/core/utils/is-valid-identifier.d.ts +2 -0
  65. package/dist/types/core/utils/is-valid-identifier.d.ts.map +1 -0
  66. package/dist/types/core/utils/iterator-to-sequence.d.ts +20 -0
  67. package/dist/types/core/utils/iterator-to-sequence.d.ts.map +1 -0
  68. package/dist/types/core/utils/promise-to-result.d.ts.map +1 -0
  69. package/dist/types/core/utils/typed-array.d.ts +4 -0
  70. package/dist/types/core/utils/typed-array.d.ts.map +1 -0
  71. package/dist/types/core/web-api.d.ts +4 -1
  72. package/dist/types/core/web-api.d.ts.map +1 -1
  73. package/package.json +2 -2
  74. package/src/core/base-primitives.ts +229 -1
  75. package/src/core/compat.ts +0 -2
  76. package/src/core/constants.ts +7 -2
  77. package/src/core/{tree/deserialize.ts → context/deserializer.ts} +159 -66
  78. package/src/core/{base → context/parser}/async.ts +181 -309
  79. package/src/core/{base → context/parser}/stream.ts +86 -11
  80. package/src/core/{base → context/parser}/sync.ts +120 -281
  81. package/src/core/context/parser.ts +259 -0
  82. package/src/core/{serializer-context.old.ts → context/serializer.ts} +241 -166
  83. package/src/core/cross/async.ts +2 -2
  84. package/src/core/cross/deserializer.ts +19 -0
  85. package/src/core/cross/index.ts +68 -47
  86. package/src/core/cross/parser.ts +7 -0
  87. package/src/core/cross/{serialize.ts → serializer.ts} +31 -12
  88. package/src/core/cross/stream.ts +2 -2
  89. package/src/core/cross/sync.ts +2 -2
  90. package/src/core/is-serializable.new.ts +1 -1
  91. package/src/core/keys.ts +8 -2
  92. package/src/core/plugin.ts +7 -7
  93. package/src/core/reference.ts +1 -1
  94. package/src/core/special-reference.ts +9 -0
  95. package/src/core/tree/async.ts +2 -2
  96. package/src/core/tree/deserializer.ts +31 -0
  97. package/src/core/tree/index.ts +2 -2
  98. package/src/core/tree/{serialize.ts → serializer.ts} +5 -16
  99. package/src/core/tree/sync.ts +2 -2
  100. package/src/core/types.ts +60 -7
  101. package/src/core/utils/deferred.ts +49 -0
  102. package/src/core/{shared.ts → utils/error.ts} +3 -60
  103. package/src/core/utils/get-object-flag.ts +14 -0
  104. package/src/core/utils/is-valid-identifier.ts +11 -0
  105. package/src/core/utils/iterator-to-sequence.ts +238 -0
  106. package/src/core/utils/typed-array.ts +30 -0
  107. package/src/core/web-api.ts +75 -1
  108. package/src/example.ts +0 -3
  109. package/dist/types/core/assert.d.ts.map +0 -1
  110. package/dist/types/core/base/async.d.ts.map +0 -1
  111. package/dist/types/core/base/stream.d.ts.map +0 -1
  112. package/dist/types/core/base/sync.d.ts.map +0 -1
  113. package/dist/types/core/constructors.d.ts.map +0 -1
  114. package/dist/types/core/cross/cross-parser.d.ts +0 -8
  115. package/dist/types/core/cross/cross-parser.d.ts.map +0 -1
  116. package/dist/types/core/cross/serialize.d.ts.map +0 -1
  117. package/dist/types/core/get-identifier.d.ts.map +0 -1
  118. package/dist/types/core/parser-context.d.ts +0 -23
  119. package/dist/types/core/parser-context.d.ts.map +0 -1
  120. package/dist/types/core/promise-to-result.d.ts.map +0 -1
  121. package/dist/types/core/serializer-context.old.d.ts.map +0 -1
  122. package/dist/types/core/shared.d.ts +0 -10
  123. package/dist/types/core/shared.d.ts.map +0 -1
  124. package/dist/types/core/tree/deserialize.d.ts.map +0 -1
  125. package/dist/types/core/tree/serialize.d.ts.map +0 -1
  126. package/src/core/cross/cross-parser.ts +0 -9
  127. package/src/core/parser-context.ts +0 -131
  128. package/src/core/serializer-context.new.ts +0 -1168
  129. package/src/core/tree/parser.ts +0 -45
  130. /package/dist/types/core/{assert.d.ts → utils/assert.d.ts} +0 -0
  131. /package/dist/types/core/{constructors.d.ts → utils/constructors.d.ts} +0 -0
  132. /package/dist/types/core/{get-identifier.d.ts → utils/get-identifier.d.ts} +0 -0
  133. /package/dist/types/core/{promise-to-result.d.ts → utils/promise-to-result.d.ts} +0 -0
  134. /package/src/core/{assert.ts → utils/assert.ts} +0 -0
  135. /package/src/core/{constructors.ts → utils/constructors.ts} +0 -0
  136. /package/src/core/{get-identifier.ts → utils/get-identifier.ts} +0 -0
  137. /package/src/core/{promise-to-result.ts → utils/promise-to-result.ts} +0 -0
@@ -1,45 +0,0 @@
1
- import { createIndexedValueNode, createReferenceNode } from '../base-primitives';
2
- import { hasReferenceID } from '../reference';
3
- import type { SerovalIndexedValueNode, SerovalReferenceNode } from '../types';
4
-
5
- function createIndexedValue<T>(
6
- ids: Map<unknown, number>,
7
- marked: Set<number>,
8
- current: T,
9
- ): number {
10
- const ref = ids.get(current);
11
- if (ref == null) {
12
- const id = ids.size;
13
- ids.set(current, id);
14
- return id;
15
- }
16
- marked.add(ref);
17
- return ref;
18
- }
19
-
20
- export function getVanillaReference<T>(
21
- ids: Map<unknown, number>,
22
- marked: Set<number>,
23
- current: T,
24
- ): number | SerovalIndexedValueNode | SerovalReferenceNode {
25
- const id = createIndexedValue(ids, marked, current);
26
- if (marked.has(id)) {
27
- return createIndexedValueNode(id);
28
- }
29
- if (hasReferenceID(current)) {
30
- return createReferenceNode(id, current);
31
- }
32
- return id;
33
- }
34
-
35
- export function getStrictVanillaReference<T>(
36
- ids: Map<unknown, number>,
37
- marked: Set<number>,
38
- current: T,
39
- ): SerovalIndexedValueNode | SerovalReferenceNode {
40
- const id = createIndexedValue(ids, marked, current);
41
- if (marked.has(id)) {
42
- return createIndexedValueNode(id);
43
- }
44
- return createReferenceNode(id, current);
45
- }
File without changes