@pdtf/schemas 3.6.0-dev.1 → 3.6.0-dev.3

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 (132) hide show
  1. package/package.json +1 -1
  2. package/pensive-tesla-d0d355/CLAUDE.md +101 -0
  3. package/pensive-tesla-d0d355/LICENSE +21 -0
  4. package/pensive-tesla-d0d355/README.md +435 -0
  5. package/pensive-tesla-d0d355/docs/branch-release-workflow.md +138 -0
  6. package/pensive-tesla-d0d355/docs/sef25-extensions-ui-spec.md +355 -0
  7. package/pensive-tesla-d0d355/index.js +654 -0
  8. package/pensive-tesla-d0d355/package-lock.json +7297 -0
  9. package/pensive-tesla-d0d355/package.json +44 -0
  10. package/pensive-tesla-d0d355/src/examples/v1/exampleAddParticipantVouch.json +32 -0
  11. package/pensive-tesla-d0d355/src/examples/v1/exampleDocumentedVouch.json +40 -0
  12. package/pensive-tesla-d0d355/src/examples/v1/exampleElectronicRecord.json +30 -0
  13. package/pensive-tesla-d0d355/src/examples/v1/exampleTransaction.json +878 -0
  14. package/pensive-tesla-d0d355/src/examples/v1/exampleVouch.json +25 -0
  15. package/pensive-tesla-d0d355/src/examples/v2/exampleTransaction.json +901 -0
  16. package/pensive-tesla-d0d355/src/examples/v3/exampleAddParticipantVouch.json +38 -0
  17. package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay.json +55 -0
  18. package/pensive-tesla-d0d355/src/examples/v3/exampleCustomOverlay2.json +93 -0
  19. package/pensive-tesla-d0d355/src/examples/v3/exampleDocumentedVouch.json +47 -0
  20. package/pensive-tesla-d0d355/src/examples/v3/exampleElectronicRecord.json +36 -0
  21. package/pensive-tesla-d0d355/src/examples/v3/exampleTransaction.json +1038 -0
  22. package/pensive-tesla-d0d355/src/examples/v3/exampleVouch.json +32 -0
  23. package/pensive-tesla-d0d355/src/mappings/SendPropertyDetailsRequestSchema.json +1588 -0
  24. package/pensive-tesla-d0d355/src/mappings/adf.js +198 -0
  25. package/pensive-tesla-d0d355/src/schemas/v1/GeoJSON.json +1279 -0
  26. package/pensive-tesla-d0d355/src/schemas/v1/baspiNotes.html +102 -0
  27. package/pensive-tesla-d0d355/src/schemas/v1/energy-performance-certificate.json +124 -0
  28. package/pensive-tesla-d0d355/src/schemas/v1/freehold-information.json +2051 -0
  29. package/pensive-tesla-d0d355/src/schemas/v1/leasehold-information.json +2064 -0
  30. package/pensive-tesla-d0d355/src/schemas/v1/legal-information.json +1045 -0
  31. package/pensive-tesla-d0d355/src/schemas/v1/material-facts.json +2109 -0
  32. package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction-search-results.json +40 -0
  33. package/pensive-tesla-d0d355/src/schemas/v1/pdtf-transaction.json +191 -0
  34. package/pensive-tesla-d0d355/src/schemas/v1/searches/drainage-and-water.json +261 -0
  35. package/pensive-tesla-d0d355/src/schemas/v1/searches/local-land-charges.json +69 -0
  36. package/pensive-tesla-d0d355/src/schemas/v1/searches/local-searches-required.json +857 -0
  37. package/pensive-tesla-d0d355/src/schemas/v1/searches.json +237 -0
  38. package/pensive-tesla-d0d355/src/schemas/v1/title-deed.json +841 -0
  39. package/pensive-tesla-d0d355/src/schemas/v2/baspiNotes.html +102 -0
  40. package/pensive-tesla-d0d355/src/schemas/v2/combined.json +37731 -0
  41. package/pensive-tesla-d0d355/src/schemas/v2/overlays/baspi.json +8132 -0
  42. package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29DW.json +705 -0
  43. package/pensive-tesla-d0d355/src/schemas/v2/overlays/con29R.json +2956 -0
  44. package/pensive-tesla-d0d355/src/schemas/v2/overlays/fme1.json +1259 -0
  45. package/pensive-tesla-d0d355/src/schemas/v2/overlays/llc1.json +25 -0
  46. package/pensive-tesla-d0d355/src/schemas/v2/overlays/lpe1.json +2171 -0
  47. package/pensive-tesla-d0d355/src/schemas/v2/overlays/nts.json +326 -0
  48. package/pensive-tesla-d0d355/src/schemas/v2/overlays/oc1.json +2799 -0
  49. package/pensive-tesla-d0d355/src/schemas/v2/overlays/piq.json +3419 -0
  50. package/pensive-tesla-d0d355/src/schemas/v2/overlays/rds.json +3736 -0
  51. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta10.json +5306 -0
  52. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta6.json +4533 -0
  53. package/pensive-tesla-d0d355/src/schemas/v2/overlays/ta7.json +1045 -0
  54. package/pensive-tesla-d0d355/src/schemas/v2/pdtf-transaction.json +34351 -0
  55. package/pensive-tesla-d0d355/src/schemas/v2/skeleton.json +3973 -0
  56. package/pensive-tesla-d0d355/src/schemas/v3/combined.json +48469 -0
  57. package/pensive-tesla-d0d355/src/schemas/v3/compactSkeleton.txt +4519 -0
  58. package/pensive-tesla-d0d355/src/schemas/v3/overlays/README.md +299 -0
  59. package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi4.json +8025 -0
  60. package/pensive-tesla-d0d355/src/schemas/v3/overlays/baspi5.json +8175 -0
  61. package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29DW.json +716 -0
  62. package/pensive-tesla-d0d355/src/schemas/v3/overlays/con29R.json +2981 -0
  63. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ac.json +333 -0
  64. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/as.json +74 -0
  65. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dk.json +32 -0
  66. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/dr.json +73 -0
  67. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/er.json +85 -0
  68. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/fd.json +75 -0
  69. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hi.json +51 -0
  70. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/hs.json +73 -0
  71. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ic.json +59 -0
  72. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/jk.json +96 -0
  73. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/la.json +85 -0
  74. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/lc.json +75 -0
  75. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ma.json +90 -0
  76. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mc.json +38 -0
  77. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/mi.json +69 -0
  78. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/nd.json +43 -0
  79. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oa.json +24 -0
  80. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/oc.json +57 -0
  81. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/pc.json +37 -0
  82. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ph.json +194 -0
  83. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/rw.json +68 -0
  84. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sb.json +73 -0
  85. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sc.json +129 -0
  86. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sd.json +63 -0
  87. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sf.json +74 -0
  88. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/sl.json +68 -0
  89. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/ta.json +252 -0
  90. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tf.json +103 -0
  91. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/tr.json +73 -0
  92. package/pensive-tesla-d0d355/src/schemas/v3/overlays/extensions/wg.json +350 -0
  93. package/pensive-tesla-d0d355/src/schemas/v3/overlays/fme1.json +1266 -0
  94. package/pensive-tesla-d0d355/src/schemas/v3/overlays/llc1.json +25 -0
  95. package/pensive-tesla-d0d355/src/schemas/v3/overlays/lpe1.json +2199 -0
  96. package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts.json +2157 -0
  97. package/pensive-tesla-d0d355/src/schemas/v3/overlays/nts2.json +2742 -0
  98. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl.json +1813 -0
  99. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ntsl2.json +2217 -0
  100. package/pensive-tesla-d0d355/src/schemas/v3/overlays/oc1.json +2817 -0
  101. package/pensive-tesla-d0d355/src/schemas/v3/overlays/piq.json +3322 -0
  102. package/pensive-tesla-d0d355/src/schemas/v3/overlays/rds.json +3665 -0
  103. package/pensive-tesla-d0d355/src/schemas/v3/overlays/sef25.json +1639 -0
  104. package/pensive-tesla-d0d355/src/schemas/v3/overlays/sr24.json +38 -0
  105. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta10.json +4654 -0
  106. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta6.json +4568 -0
  107. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta6ed6.json +6534 -0
  108. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7.json +1537 -0
  109. package/pensive-tesla-d0d355/src/schemas/v3/overlays/ta7ed5.json +1551 -0
  110. package/pensive-tesla-d0d355/src/schemas/v3/pdtf-transaction.json +41573 -0
  111. package/pensive-tesla-d0d355/src/schemas/v3/skeleton.json +5767 -0
  112. package/pensive-tesla-d0d355/src/schemas/verifiedClaims/README.md +21 -0
  113. package/pensive-tesla-d0d355/src/schemas/verifiedClaims/pdtf-verified-claims.json +447 -0
  114. package/pensive-tesla-d0d355/src/utils/compactSkeleton.js +84 -0
  115. package/pensive-tesla-d0d355/src/utils/countTokens.js +67 -0
  116. package/pensive-tesla-d0d355/src/utils/extractExtensionOverlays.js +624 -0
  117. package/pensive-tesla-d0d355/src/utils/extractOverlay.js +381 -0
  118. package/pensive-tesla-d0d355/src/utils/extractProperties.js +44 -0
  119. package/pensive-tesla-d0d355/src/utils/listPathTitles.js +36 -0
  120. package/pensive-tesla-d0d355/src/utils/minimalSkeleton.js +85 -0
  121. package/pensive-tesla-d0d355/src/utils/pathList.csv +903 -0
  122. package/pensive-tesla-d0d355/src/utils/pathSkeleton.js +181 -0
  123. package/src/schemas/v3/combined.json +323 -5
  124. package/src/schemas/v3/compactSkeleton.txt +63 -0
  125. package/src/schemas/v3/overlays/baspi4.json +2 -1
  126. package/src/schemas/v3/overlays/baspi5.json +2 -1
  127. package/src/schemas/v3/overlays/extensions/ta.json +0 -48
  128. package/src/schemas/v3/overlays/piq.json +2 -1
  129. package/src/schemas/v3/overlays/ta6ed6.json +2 -1
  130. package/src/schemas/v3/pdtf-transaction.json +336 -2
  131. package/src/schemas/v3/skeleton.json +68 -3
  132. package/docs/backend-lms-profile-filtering-spec.md +0 -180
@@ -0,0 +1,181 @@
1
+ const fs = require("fs");
2
+ const traverse = require("traverse");
3
+
4
+ const combinedSchema = require("../schemas/v3/combined.json");
5
+
6
+ // Extract fields that have overlay-specific properties
7
+ const extractFields = [
8
+ "baspi4", "baspi5", "nts", "nts2", "ntsl", "ntsl2",
9
+ "ta6", "ta7", "ta7ed5", "ta10", "lpe1", "fme1", "piq",
10
+ "con29R", "con29DW", "llc1", "rds", "oc1", "sr24",
11
+ ];
12
+
13
+ // Delete properties we don't want in the skeleton
14
+ const deleteProperties = (sourceSchema, propertyNames) => {
15
+ traverse(sourceSchema).forEach(function (element) {
16
+ if (propertyNames.includes(this.key)) {
17
+ this.delete(true);
18
+ }
19
+ });
20
+ return sourceSchema;
21
+ };
22
+
23
+ // Collect all paths in path notation
24
+ const collectPaths = (schema, currentPath = "") => {
25
+ const paths = [];
26
+
27
+ if (!schema || typeof schema !== 'object') {
28
+ return paths;
29
+ }
30
+
31
+ // Handle arrays
32
+ if (schema.type === "array" && schema.items) {
33
+ const arrayPath = currentPath + "[]";
34
+ paths.push(arrayPath);
35
+ // Continue with items
36
+ const itemPaths = collectPaths(schema.items, arrayPath);
37
+ paths.push(...itemPaths);
38
+ return paths;
39
+ }
40
+
41
+ // Handle primitives - add type suffix
42
+ if (schema.type && !schema.properties && !schema.oneOf && !schema.items) {
43
+ let typeChar = "";
44
+ switch(schema.type) {
45
+ case "string": typeChar = ":s"; break;
46
+ case "number": typeChar = ":n"; break;
47
+ case "integer": typeChar = ":i"; break;
48
+ case "boolean": typeChar = ":b"; break;
49
+ default: typeChar = "";
50
+ }
51
+ if (currentPath) {
52
+ paths.push(currentPath + typeChar);
53
+ }
54
+ return paths;
55
+ }
56
+
57
+ // Handle objects with properties
58
+ if (schema.properties) {
59
+ // If this is an object without a path yet, don't add it
60
+ if (currentPath && !schema.type?.includes("array")) {
61
+ paths.push(currentPath);
62
+ }
63
+
64
+ Object.keys(schema.properties).forEach((propName) => {
65
+ const newPath = currentPath ? `${currentPath}.${propName}` : propName;
66
+ const propPaths = collectPaths(schema.properties[propName], newPath);
67
+ paths.push(...propPaths);
68
+ });
69
+ }
70
+
71
+ // Handle oneOf - collect all possible properties
72
+ if (schema.oneOf) {
73
+ const variantProps = new Set();
74
+ schema.oneOf.forEach((oneOfSchema) => {
75
+ if (oneOfSchema.properties) {
76
+ Object.keys(oneOfSchema.properties).forEach((propName) => {
77
+ variantProps.add(propName);
78
+ });
79
+ }
80
+ });
81
+
82
+ // Process each unique property
83
+ variantProps.forEach((propName) => {
84
+ const newPath = currentPath ? `${currentPath}.${propName}` : propName;
85
+ // Check if all variants have the same type
86
+ let commonType = null;
87
+ let isVariant = false;
88
+
89
+ schema.oneOf.forEach((oneOfSchema) => {
90
+ if (oneOfSchema.properties && oneOfSchema.properties[propName]) {
91
+ const propType = oneOfSchema.properties[propName].type;
92
+ if (commonType === null) {
93
+ commonType = propType;
94
+ } else if (commonType !== propType) {
95
+ isVariant = true;
96
+ }
97
+ }
98
+ });
99
+
100
+ if (isVariant || !commonType) {
101
+ paths.push(newPath + ":v"); // variant
102
+ } else {
103
+ // Process the first variant's version of this property
104
+ for (const oneOfSchema of schema.oneOf) {
105
+ if (oneOfSchema.properties && oneOfSchema.properties[propName]) {
106
+ const propPaths = collectPaths(oneOfSchema.properties[propName], newPath);
107
+ paths.push(...propPaths);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+ });
113
+ }
114
+
115
+ // Empty objects
116
+ if (currentPath && !schema.properties && !schema.oneOf && !schema.items && !schema.type) {
117
+ paths.push(currentPath);
118
+ }
119
+
120
+ return paths;
121
+ };
122
+
123
+ // Remove duplicates
124
+ const deduplicatePaths = (paths) => {
125
+ return [...new Set(paths)];
126
+ };
127
+
128
+ // Sort paths for readability
129
+ const sortPaths = (paths) => {
130
+ return paths.sort((a, b) => {
131
+ // Sort by depth first (fewer dots = higher up)
132
+ const depthA = (a.match(/\./g) || []).length;
133
+ const depthB = (b.match(/\./g) || []).length;
134
+ if (depthA !== depthB) return depthA - depthB;
135
+
136
+ // Then alphabetically
137
+ return a.localeCompare(b);
138
+ });
139
+ };
140
+
141
+ // Create clean schema
142
+ const coreSchema = deleteProperties(JSON.parse(JSON.stringify(combinedSchema)), [
143
+ "discriminator",
144
+ ...extractFields.map((item) => `${item}Ref`),
145
+ ...extractFields.map((item) => `${item}Required`),
146
+ ...extractFields.map((item) => `${item}Title`),
147
+ ...extractFields.map((item) => `${item}Description`),
148
+ ...extractFields.map((item) => `${item}Enum`),
149
+ ]);
150
+
151
+ // Remove metadata
152
+ const skeletonSchema = deleteProperties(coreSchema, [
153
+ "$schema", "$id", "title", "description", "required",
154
+ "enum", "minItems", "minLength", "format", "minimum", "maximum",
155
+ ]);
156
+
157
+ // Collect paths
158
+ const allPaths = collectPaths(skeletonSchema);
159
+ const uniquePaths = deduplicatePaths(allPaths);
160
+ const sortedPaths = sortPaths(uniquePaths);
161
+
162
+ // Write as text file
163
+ const pathContent = sortedPaths.join('\n');
164
+ fs.writeFileSync("../schemas/v3/pathSkeleton.txt", pathContent);
165
+
166
+ // Also create a JSON version for comparison
167
+ fs.writeFileSync("../schemas/v3/pathSkeleton.json", JSON.stringify(sortedPaths, null, 2));
168
+
169
+ console.log(`Path skeleton written to ../schemas/v3/pathSkeleton.txt`);
170
+ console.log(`Total paths: ${sortedPaths.length}`);
171
+ console.log(`Text size: ${pathContent.length} bytes`);
172
+
173
+ // Count tokens
174
+ try {
175
+ const GPT3Encoder = require('gpt-3-encoder');
176
+ const encoded = GPT3Encoder.encode(pathContent);
177
+ console.log(`Tokens (GPT-3): ${encoded.length}`);
178
+ console.log(`Reduction: ${((1 - encoded.length / 78734) * 100).toFixed(1)}% fewer tokens than JSON skeleton`);
179
+ } catch (e) {
180
+ console.log(`Estimated tokens: ~${Math.ceil(pathContent.length / 4)}`);
181
+ }