@bsv/dpp-profiles 0.3.0-beta.1

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 (96) hide show
  1. package/LICENSE +58 -0
  2. package/README.md +64 -0
  3. package/dist/applicability.d.ts +96 -0
  4. package/dist/applicability.d.ts.map +1 -0
  5. package/dist/applicability.js +181 -0
  6. package/dist/applicability.js.map +1 -0
  7. package/dist/combinations.d.ts +30 -0
  8. package/dist/combinations.d.ts.map +1 -0
  9. package/dist/combinations.js +103 -0
  10. package/dist/combinations.js.map +1 -0
  11. package/dist/evidence-shapes.d.ts +198 -0
  12. package/dist/evidence-shapes.d.ts.map +1 -0
  13. package/dist/evidence-shapes.js +123 -0
  14. package/dist/evidence-shapes.js.map +1 -0
  15. package/dist/gs1-epc-binary.d.ts +81 -0
  16. package/dist/gs1-epc-binary.d.ts.map +1 -0
  17. package/dist/gs1-epc-binary.js +252 -0
  18. package/dist/gs1-epc-binary.js.map +1 -0
  19. package/dist/gs1-resolution.d.ts +392 -0
  20. package/dist/gs1-resolution.d.ts.map +1 -0
  21. package/dist/gs1-resolution.js +696 -0
  22. package/dist/gs1-resolution.js.map +1 -0
  23. package/dist/identifiers.d.ts +57 -0
  24. package/dist/identifiers.d.ts.map +1 -0
  25. package/dist/identifiers.js +117 -0
  26. package/dist/identifiers.js.map +1 -0
  27. package/dist/index.d.ts +235 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +124 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/manifest-v2.d.ts +87 -0
  32. package/dist/manifest-v2.d.ts.map +1 -0
  33. package/dist/manifest-v2.js +31 -0
  34. package/dist/manifest-v2.js.map +1 -0
  35. package/dist/mapping.d.ts +84 -0
  36. package/dist/mapping.d.ts.map +1 -0
  37. package/dist/mapping.js +88 -0
  38. package/dist/mapping.js.map +1 -0
  39. package/dist/projections.d.ts +233 -0
  40. package/dist/projections.d.ts.map +1 -0
  41. package/dist/projections.js +466 -0
  42. package/dist/projections.js.map +1 -0
  43. package/frozen.json +42 -0
  44. package/generated/consumer/battery-v2.json +2248 -0
  45. package/generated/consumer/battery-v3.json +4354 -0
  46. package/generated/consumer/general-v1.json +9 -0
  47. package/generated/consumer/general-v2.json +714 -0
  48. package/generated/consumer/textile-v1.json +101 -0
  49. package/generated/consumer/textile-v2.json +1033 -0
  50. package/generated/consumer/textile-v3.json +2011 -0
  51. package/generated/index.json +86 -0
  52. package/generated/mapping/battery@2.md +116 -0
  53. package/generated/mapping/battery@3.md +130 -0
  54. package/generated/mapping/general@2.md +50 -0
  55. package/generated/mapping/textile@2.md +61 -0
  56. package/generated/mapping/textile@3.md +73 -0
  57. package/generated/payload-schema/battery@2.public.schema.json +609 -0
  58. package/generated/payload-schema/battery@2.restricted.schema.json +377 -0
  59. package/generated/payload-schema/battery@3.public.schema.json +1364 -0
  60. package/generated/payload-schema/battery@3.restricted.schema.json +1097 -0
  61. package/generated/payload-schema/general@1.public.schema.json +37 -0
  62. package/generated/payload-schema/general@1.restricted.schema.json +9 -0
  63. package/generated/payload-schema/general@2.public.schema.json +352 -0
  64. package/generated/payload-schema/general@2.restricted.schema.json +52 -0
  65. package/generated/payload-schema/textile@1.public.schema.json +82 -0
  66. package/generated/payload-schema/textile@1.restricted.schema.json +22 -0
  67. package/generated/payload-schema/textile@2.public.schema.json +464 -0
  68. package/generated/payload-schema/textile@2.restricted.schema.json +78 -0
  69. package/generated/payload-schema/textile@3.public.schema.json +1299 -0
  70. package/generated/payload-schema/textile@3.restricted.schema.json +78 -0
  71. package/manifests/battery@2.json +4047 -0
  72. package/manifests/battery@3.json +6164 -0
  73. package/manifests/exchange/untp-0.7.0-jose@1.json +191 -0
  74. package/manifests/exchange/vc-di-ecdsa-rdfc-2019@1.json +74 -0
  75. package/manifests/exchange/vsc-draft-compat@0.1.0.json +64 -0
  76. package/manifests/general@1.json +148 -0
  77. package/manifests/general@2.json +1266 -0
  78. package/manifests/interoperability/epcis-json@1.json +69 -0
  79. package/manifests/interoperability/epcis-vsc@1.json +64 -0
  80. package/manifests/interoperability/gs1-digital-link@1.json +71 -0
  81. package/manifests/operator/federated-operators@1.json +54 -0
  82. package/manifests/operator/single-operator@1.json +52 -0
  83. package/manifests/textile@1.json +383 -0
  84. package/manifests/textile@2.json +1682 -0
  85. package/manifests/textile@3.json +2763 -0
  86. package/package.json +59 -0
  87. package/schemas/exchange-profile.schema.json +134 -0
  88. package/schemas/gs1/NOTICE.md +11 -0
  89. package/schemas/gs1/resolver-description-file-schema-1.2.0.json +124 -0
  90. package/schemas/gs1/resolver-linkset-context-1.2.1.jsonld +39 -0
  91. package/schemas/gs1/resolver-linkset-schema-1.2.1.json +96 -0
  92. package/schemas/interoperability-profile.schema.json +347 -0
  93. package/schemas/operator-profile.schema.json +108 -0
  94. package/schemas/product-identity.schema.json +45 -0
  95. package/schemas/profile-manifest-v2.schema.json +1087 -0
  96. package/schemas/profile-manifest.schema.json +291 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gs1-resolution.js","sourceRoot":"","sources":["../src/gs1-resolution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * GS1 identifier helpers for writers and readers (`spec/profiles.md` §5,
3
+ * `spec/record-model.md` §3). Pure functions over the GS1 general
4
+ * specifications' published rules: the mod-10 check digit, the fourteen-digit
5
+ * GTIN spelling, the demonstration prefix 952, and the Digital Link URI's
6
+ * application identifiers 01 and 21. None of them can say who allocated a
7
+ * number; GS1 settles that at allocation and a reader cannot see it in the
8
+ * digits, which is why `authority` is never inferred here.
9
+ */
10
+ /** The GS1 prefix reserved for demonstrations and examples, never licensed to a company. */
11
+ export declare const GS1_DEMONSTRATION_PREFIX = "952";
12
+ /**
13
+ * The GTIN GS1's own Digital Link documentation uses as its example. Its prefix
14
+ * is 950, the GS1 Global Office, not the demonstration prefix 952, which is why
15
+ * the fixtures that still carry it are moving to a 952 number.
16
+ */
17
+ export declare const GS1_EXAMPLE_GTIN_14 = "09506000134352";
18
+ /**
19
+ * The mod-10 check digit for a GS1 key: weights 3 and 1 alternating from the
20
+ * rightmost data digit, the sum rounded up to the next multiple of ten.
21
+ */
22
+ export declare function gs1CheckDigit(dataDigits: string): number;
23
+ /** A GTIN-8, GTIN-12, GTIN-13 or GTIN-14 whose final digit is the check digit of the rest. */
24
+ export declare function isValidGtin(gtin: string): boolean;
25
+ /** The fourteen-digit spelling a Digital Link path carries, left-padded with zeros. */
26
+ export declare function gtin14(gtin: string): string;
27
+ /**
28
+ * Whether the GTIN sits under prefix 952. The prefix follows the indicator
29
+ * digit in the fourteen-digit spelling, so it is read at offset one.
30
+ */
31
+ export declare function isDemonstrationGtin(gtin: string): boolean;
32
+ export interface Gs1DigitalLink {
33
+ host: string;
34
+ /** Fourteen-digit spelling. */
35
+ gtin: string;
36
+ /** Application identifier 21, when present. */
37
+ serial?: string;
38
+ /** Application identifier 10, when present. */
39
+ lot?: string;
40
+ checkDigitValid: boolean;
41
+ demonstration: boolean;
42
+ }
43
+ /**
44
+ * Read a GS1 Digital Link URI of the uncompressed path form
45
+ * `https://host/01/{gtin}[/10/{lot}][/21/{serial}]`. Refuses anything else
46
+ * rather than guessing: the compressed forms and the query-string forms are
47
+ * not parsed, and a path this cannot read is a refusal, not an empty result.
48
+ */
49
+ export declare function parseGs1DigitalLink(uri: string): Gs1DigitalLink;
50
+ /**
51
+ * Build the uncompressed Digital Link path a writer publishes: the GTIN at
52
+ * fourteen digits with a correct check digit, then the serial under 21. The
53
+ * host is the writer's choice and should be one that answers for the
54
+ * identifier (`spec/record-model.md` §3).
55
+ */
56
+ export declare function buildGs1DigitalLink(host: string, gtin: string, serial: string): string;
57
+ //# sourceMappingURL=identifiers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../src/identifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,4FAA4F;AAC5F,eAAO,MAAM,wBAAwB,QAAQ,CAAA;AAE7C;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CASxD;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGjD;AAED,uFAAuF;AACvF,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3C;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGzD;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAkC/D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKtF"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * GS1 identifier helpers for writers and readers (`spec/profiles.md` §5,
3
+ * `spec/record-model.md` §3). Pure functions over the GS1 general
4
+ * specifications' published rules: the mod-10 check digit, the fourteen-digit
5
+ * GTIN spelling, the demonstration prefix 952, and the Digital Link URI's
6
+ * application identifiers 01 and 21. None of them can say who allocated a
7
+ * number; GS1 settles that at allocation and a reader cannot see it in the
8
+ * digits, which is why `authority` is never inferred here.
9
+ */
10
+ /** The GS1 prefix reserved for demonstrations and examples, never licensed to a company. */
11
+ export const GS1_DEMONSTRATION_PREFIX = '952';
12
+ /**
13
+ * The GTIN GS1's own Digital Link documentation uses as its example. Its prefix
14
+ * is 950, the GS1 Global Office, not the demonstration prefix 952, which is why
15
+ * the fixtures that still carry it are moving to a 952 number.
16
+ */
17
+ export const GS1_EXAMPLE_GTIN_14 = '09506000134352';
18
+ /**
19
+ * The mod-10 check digit for a GS1 key: weights 3 and 1 alternating from the
20
+ * rightmost data digit, the sum rounded up to the next multiple of ten.
21
+ */
22
+ export function gs1CheckDigit(dataDigits) {
23
+ if (!/^\d+$/.test(dataDigits))
24
+ throw new Error('a GS1 key is digits only');
25
+ let sum = 0;
26
+ let weight = 3;
27
+ for (let i = dataDigits.length - 1; i >= 0; i--) {
28
+ sum += Number(dataDigits[i]) * weight;
29
+ weight = weight === 3 ? 1 : 3;
30
+ }
31
+ return (10 - (sum % 10)) % 10;
32
+ }
33
+ /** A GTIN-8, GTIN-12, GTIN-13 or GTIN-14 whose final digit is the check digit of the rest. */
34
+ export function isValidGtin(gtin) {
35
+ if (!/^(\d{8}|\d{12}|\d{13}|\d{14})$/.test(gtin))
36
+ return false;
37
+ return gs1CheckDigit(gtin.slice(0, -1)) === Number(gtin.at(-1));
38
+ }
39
+ /** The fourteen-digit spelling a Digital Link path carries, left-padded with zeros. */
40
+ export function gtin14(gtin) {
41
+ if (!/^(\d{8}|\d{12}|\d{13}|\d{14})$/.test(gtin))
42
+ throw new Error('a GTIN has 8, 12, 13 or 14 digits');
43
+ return gtin.padStart(14, '0');
44
+ }
45
+ /**
46
+ * Whether the GTIN sits under prefix 952. The prefix follows the indicator
47
+ * digit in the fourteen-digit spelling, so it is read at offset one.
48
+ */
49
+ export function isDemonstrationGtin(gtin) {
50
+ const fourteen = gtin14(gtin);
51
+ return fourteen.slice(1, 4) === GS1_DEMONSTRATION_PREFIX;
52
+ }
53
+ /**
54
+ * Read a GS1 Digital Link URI of the uncompressed path form
55
+ * `https://host/01/{gtin}[/10/{lot}][/21/{serial}]`. Refuses anything else
56
+ * rather than guessing: the compressed forms and the query-string forms are
57
+ * not parsed, and a path this cannot read is a refusal, not an empty result.
58
+ */
59
+ export function parseGs1DigitalLink(uri) {
60
+ let url;
61
+ try {
62
+ url = new URL(uri);
63
+ }
64
+ catch {
65
+ throw new Error('not a URL');
66
+ }
67
+ if (url.protocol !== 'https:' && url.protocol !== 'http:')
68
+ throw new Error('a Digital Link uses http or https');
69
+ const segments = url.pathname.split('/').filter((s) => s !== '');
70
+ const at01 = segments.indexOf('01');
71
+ if (at01 === -1 || segments[at01 + 1] == null)
72
+ throw new Error('no application identifier 01');
73
+ const gtinRaw = decodeURIComponent(segments[at01 + 1]);
74
+ if (!/^\d{8}$|^\d{12,14}$/.test(gtinRaw))
75
+ throw new Error('application identifier 01 must carry 8, 12, 13 or 14 digits');
76
+ const gtin = gtin14(gtinRaw);
77
+ const result = {
78
+ host: url.host,
79
+ gtin,
80
+ checkDigitValid: isValidGtin(gtinRaw),
81
+ demonstration: isDemonstrationGtin(gtin),
82
+ };
83
+ for (let i = at01 + 2; i + 1 < segments.length; i += 2) {
84
+ const ai = segments[i];
85
+ const value = decodeURIComponent(segments[i + 1]);
86
+ if (ai === '21') {
87
+ if (value.length === 0 || value.length > 20)
88
+ throw new Error('application identifier 21 carries 1 to 20 characters');
89
+ result.serial = value;
90
+ }
91
+ else if (ai === '10') {
92
+ if (value.length === 0 || value.length > 20)
93
+ throw new Error('application identifier 10 carries 1 to 20 characters');
94
+ result.lot = value;
95
+ }
96
+ else {
97
+ throw new Error(`application identifier ${ai} is not read by this parser`);
98
+ }
99
+ }
100
+ return result;
101
+ }
102
+ /**
103
+ * Build the uncompressed Digital Link path a writer publishes: the GTIN at
104
+ * fourteen digits with a correct check digit, then the serial under 21. The
105
+ * host is the writer's choice and should be one that answers for the
106
+ * identifier (`spec/record-model.md` §3).
107
+ */
108
+ export function buildGs1DigitalLink(host, gtin, serial) {
109
+ if (!isValidGtin(gtin))
110
+ throw new Error('the GTIN check digit does not hold; a writer never publishes one that fails');
111
+ if (serial.length === 0 || serial.length > 20)
112
+ throw new Error('a serial carries 1 to 20 characters');
113
+ if (!/^[!"%&'()*+,\-./0-9:;<=>?A-Z_a-z]+$/.test(serial))
114
+ throw new Error('a serial uses the GS1 AI encodable character set 82');
115
+ return `https://${host}/01/${gtin14(gtin)}/21/${encodeURIComponent(serial)}`;
116
+ }
117
+ //# sourceMappingURL=identifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifiers.js","sourceRoot":"","sources":["../src/identifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,4FAA4F;AAC5F,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAA;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAA;AAEnD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC1E,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;QACrC,MAAM,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;AAC/B,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9D,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtG,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC7B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,wBAAwB,CAAA;AAC1D,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAC/G,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IAC9F,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;IACxH,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC5B,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI;QACJ,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC;QACrC,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC;KACzC,CAAA;IACD,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QACjD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACpH,MAAM,CAAC,MAAM,GAAG,KAAK,CAAA;QACvB,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACpH,MAAM,CAAC,GAAG,GAAG,KAAK,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,CAAA;QAC5E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,MAAc;IAC5E,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IACtH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;IACrG,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IAC/H,OAAO,WAAW,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAA;AAC9E,CAAC"}
@@ -0,0 +1,235 @@
1
+ export * from './identifiers.js';
2
+ export * from './mapping.js';
3
+ export * from './combinations.js';
4
+ export * from './evidence-shapes.js';
5
+ export * from './applicability.js';
6
+ export * from './projections.js';
7
+ export * from './manifest-v2.js';
8
+ export * from './gs1-resolution.js';
9
+ export type ValueType = 'id' | 'text' | 'enum' | 'multi' | 'decimal' | 'integer' | 'percent' | 'monthYear' | 'date' | 'url' | 'document' | 'graphic' | 'country' | 'record' | 'any';
10
+ export type AccessTier = 'public' | 'owner' | 'legitimate' | 'authority';
11
+ export type Obligation = 'required' | 'recommended' | 'optional';
12
+ export type Granularity = 'model' | 'batch' | 'item';
13
+ export type Capture = 'form' | 'brand' | 'platform' | 'event' | 'derived' | 'deferred';
14
+ export interface Option {
15
+ value: string;
16
+ label: string;
17
+ }
18
+ export interface CodeList {
19
+ closed: boolean;
20
+ options: Option[];
21
+ }
22
+ export interface Constraints {
23
+ minimum?: number;
24
+ maximum?: number;
25
+ step?: number;
26
+ pattern?: string;
27
+ patternHint?: string;
28
+ maxLength?: number;
29
+ }
30
+ export interface Part {
31
+ key: string;
32
+ label: string;
33
+ valueType: 'text' | 'decimal' | 'percent' | 'integer' | 'enum' | 'country';
34
+ unit?: string;
35
+ codeList?: CodeList;
36
+ constraints?: Constraints;
37
+ required?: boolean;
38
+ }
39
+ export interface ApplicabilityRule {
40
+ rule: 'always' | 'category-in' | 'needs-review';
41
+ categories?: string[];
42
+ condition?: string;
43
+ }
44
+ export interface ProfileField {
45
+ key: string;
46
+ pointer: string;
47
+ label: string;
48
+ semanticUri?: string;
49
+ valueType: ValueType;
50
+ unit?: string;
51
+ codeList?: CodeList;
52
+ constraints?: Constraints;
53
+ cardinality: 'one' | 'many';
54
+ granularity: Granularity;
55
+ provenance: {
56
+ capture: Capture;
57
+ dynamic?: boolean;
58
+ prose?: boolean;
59
+ onLabel?: boolean;
60
+ needsBms?: boolean;
61
+ kind?: 'fact' | 'declaration' | 'calculation' | 'assessment';
62
+ };
63
+ accessTier: AccessTier;
64
+ obligation: Obligation;
65
+ legalBasis: string;
66
+ applicability: ApplicabilityRule;
67
+ sourceRefs?: Array<{
68
+ source: string;
69
+ clause?: string;
70
+ name?: string;
71
+ property?: string;
72
+ }>;
73
+ awaitingAct?: string;
74
+ supersedes?: string;
75
+ group?: string;
76
+ parts?: Part[];
77
+ note?: string;
78
+ }
79
+ export interface ProfileManifest {
80
+ manifestVersion: '1';
81
+ id: string;
82
+ version: number;
83
+ profile: string;
84
+ kind: 'industry';
85
+ status: 'draft' | 'current' | 'superseded';
86
+ supersededBy?: string;
87
+ title: string;
88
+ description?: string;
89
+ regulatoryLine: string;
90
+ baseline: string;
91
+ roles: string[];
92
+ applicability: {
93
+ categories: Option[];
94
+ categoryKey?: string;
95
+ jurisdictions: string[];
96
+ statements: Array<{
97
+ text: string;
98
+ status: 'enacted' | 'anticipated' | 'needs-review' | 'guidance';
99
+ source?: string;
100
+ effectiveDate?: string;
101
+ }>;
102
+ };
103
+ schemaDialect: 'https://json-schema.org/draft/2020-12/schema';
104
+ schemaUri: string;
105
+ schemaDigest: string;
106
+ restrictedSchemaUri: string;
107
+ restrictedSchemaDigest: string;
108
+ contextRefs: Array<{
109
+ id: string;
110
+ name: string;
111
+ version: string;
112
+ repository?: string;
113
+ licence?: string;
114
+ retrieved?: string;
115
+ urnPattern?: string;
116
+ use: string;
117
+ }>;
118
+ extends: string | null;
119
+ stamps: Array<{
120
+ key: string;
121
+ description: string;
122
+ valueType: 'text' | 'id' | 'integer' | 'enum';
123
+ const?: string | number;
124
+ codeList?: CodeList;
125
+ pattern?: string;
126
+ }>;
127
+ fields: ProfileField[];
128
+ eventMappings: Array<{
129
+ nativeOperation: string;
130
+ eventType: string;
131
+ externalEvent: string;
132
+ requires: string;
133
+ withoutEvidence: 'insufficient-data' | 'unsupported' | 'transformed';
134
+ }>;
135
+ accessPolicyRef: string;
136
+ accessTiers: Array<{
137
+ id: AccessTier;
138
+ description: string;
139
+ storage: 'on-chain public payload' | 'off-chain encrypted';
140
+ }>;
141
+ sourceRefs: Array<{
142
+ id: string;
143
+ name: string;
144
+ reference?: string;
145
+ version?: string;
146
+ licence?: string;
147
+ licensedText?: boolean;
148
+ use: string;
149
+ fields?: string[];
150
+ }>;
151
+ groups?: Array<{
152
+ id: string;
153
+ title: string;
154
+ blurb?: string;
155
+ }>;
156
+ identity: {
157
+ passportIdentifier: string;
158
+ granularities: Granularity[];
159
+ itemIdentifier?: string;
160
+ modelIdentifier?: string;
161
+ batchIdentifier?: string;
162
+ parentRelations: Array<{
163
+ child: 'item' | 'batch';
164
+ parent: 'model' | 'batch';
165
+ }>;
166
+ };
167
+ }
168
+ /**
169
+ * Current versions first, then the draft successors under manifest version 2
170
+ * (opt-in by explicit version; `readManifestAny` reads them with their version
171
+ * 2 fields), then the superseded versions. `readManifest` is typed for version
172
+ * 1; a draft successor read through it carries version 2 keys the type does
173
+ * not name.
174
+ */
175
+ export declare const PROFILE_IDS: readonly ["battery@2", "textile@2", "general@2", "battery@3", "textile@3", "textile@1", "general@1"];
176
+ export type ProfileId = (typeof PROFILE_IDS)[number];
177
+ /** The immutable manifest of one published profile. */
178
+ export declare function readManifest(profile: ProfileId): ProfileManifest;
179
+ /** The generated JSON Schema (2020-12) for the profile's public payload. */
180
+ export declare function readPublicPayloadSchema(profile: ProfileId): Record<string, unknown>;
181
+ /** The generated JSON Schema (2020-12) for the profile's restricted tiers. */
182
+ export declare function readRestrictedPayloadSchema(profile: ProfileId): Record<string, unknown>;
183
+ /** The generated consumer document in the legacy registry and application shape. */
184
+ export declare function readConsumerDocument(profile: ProfileId): Record<string, unknown>;
185
+ /** Exchange profiles this package catalogues (spec/exchange.md section 2). */
186
+ export declare const EXCHANGE_PROFILE_IDS: readonly ["untp-0.7.0-jose@1", "vsc-draft-compat@0.1.0", "vc-di-ecdsa-rdfc-2019@1"];
187
+ export type ExchangeProfileId = (typeof EXCHANGE_PROFILE_IDS)[number];
188
+ /** Operator profiles this package catalogues (spec/services.md, spec/conformance.md section 4). */
189
+ export declare const OPERATOR_PROFILE_IDS: readonly ["single-operator@1", "federated-operators@1"];
190
+ export type OperatorProfileId = (typeof OPERATOR_PROFILE_IDS)[number];
191
+ /** The manifest of one exchange profile: representation, artefacts with their retrieval state, proof suites, anchoring, mappings. */
192
+ export declare function readExchangeProfile(profile: ExchangeProfileId): Record<string, unknown>;
193
+ /** The manifest of one operator profile: admission, publisher policy, discovery, synchronisation, retention and acceptance exercises. */
194
+ export declare function readOperatorProfile(profile: OperatorProfileId): Record<string, unknown>;
195
+ /**
196
+ * Interoperability profiles this package catalogues
197
+ * (`schemas/interoperability-profile.schema.json`): how a passport is
198
+ * discovered (spec/gs1-discovery.md), how source events are exchanged and how
199
+ * a source is mapped into an existing credential profile
200
+ * (spec/epcis-interoperability.md). Neither industry profiles nor signed
201
+ * credential formats, and never a mapping to a native operation.
202
+ */
203
+ export declare const INTEROPERABILITY_PROFILE_IDS: readonly ["gs1-digital-link@1", "epcis-json@1", "epcis-vsc@1"];
204
+ export type InteroperabilityProfileId = (typeof INTEROPERABILITY_PROFILE_IDS)[number];
205
+ /** The manifest of one interoperability profile: role, pinned standards and artefacts, formats, dependencies, limits and what it cannot map. */
206
+ export declare function readInteroperabilityProfile(profile: InteroperabilityProfileId): Record<string, unknown>;
207
+ /** The frozen digests every published manifest and generated file is held to. */
208
+ export declare function readFrozen(): {
209
+ frozenAt: string;
210
+ manifests: Record<string, string>;
211
+ generated: Record<string, string>;
212
+ };
213
+ /**
214
+ * The fields of a manifest that apply to one product category, the rule
215
+ * `spec/profiles.md` §3 sets: `always` applies, `category-in` applies to the
216
+ * named categories, and `needs-review` is returned separately because no code
217
+ * can decide it. The caller shows the review list rather than treating it as
218
+ * satisfied or as universally required.
219
+ */
220
+ export declare function fieldsFor(manifest: ProfileManifest, category?: string): {
221
+ applies: ProfileField[];
222
+ needsReview: ProfileField[];
223
+ notApplicable: ProfileField[];
224
+ };
225
+ /**
226
+ * Which required fields a public payload is missing, under the same three-way
227
+ * rule: a field under review is listed separately and never blocks. Values are
228
+ * read at the field's pointer; a value counts as present when it is not
229
+ * undefined, null, an empty string or an empty array.
230
+ */
231
+ export declare function missingRequired(manifest: ProfileManifest, payload: Record<string, unknown>, category?: string): {
232
+ missing: ProfileField[];
233
+ needsReview: ProfileField[];
234
+ };
235
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @bsv/dpp-profiles: the canonical industry data profiles (`spec/profiles.md`).
3
+ *
4
+ * The package is data first. `manifests/` holds the immutable profile
5
+ * manifests, `schemas/` their JSON Schema, `generated/` what the deterministic
6
+ * generator derives from them (payload schemas and consumer documents), and
7
+ * `frozen.json` the digests a published version is held to. This module gives
8
+ * a consumer typed access to those files and the GS1 identifier helpers a
9
+ * writer needs. Its one runtime dependency is the RFC 8785 canonicaliser the
10
+ * projection digest uses; it reads its data files through the Node file
11
+ * system, so this entry point is a Node module and the data files are the
12
+ * portable surface for everything else.
13
+ */
14
+ import { readFileSync } from 'node:fs';
15
+ export * from './identifiers.js';
16
+ export * from './mapping.js';
17
+ export * from './combinations.js';
18
+ export * from './evidence-shapes.js';
19
+ export * from './applicability.js';
20
+ export * from './projections.js';
21
+ export * from './manifest-v2.js';
22
+ export * from './gs1-resolution.js';
23
+ /**
24
+ * Current versions first, then the draft successors under manifest version 2
25
+ * (opt-in by explicit version; `readManifestAny` reads them with their version
26
+ * 2 fields), then the superseded versions. `readManifest` is typed for version
27
+ * 1; a draft successor read through it carries version 2 keys the type does
28
+ * not name.
29
+ */
30
+ export const PROFILE_IDS = ['battery@2', 'textile@2', 'general@2', 'battery@3', 'textile@3', 'textile@1', 'general@1'];
31
+ const packageRoot = new URL('../', import.meta.url);
32
+ function readJson(relative) {
33
+ return JSON.parse(readFileSync(new URL(relative, packageRoot), 'utf8'));
34
+ }
35
+ /** The immutable manifest of one published profile. */
36
+ export function readManifest(profile) {
37
+ return readJson(`manifests/${profile}.json`);
38
+ }
39
+ /** The generated JSON Schema (2020-12) for the profile's public payload. */
40
+ export function readPublicPayloadSchema(profile) {
41
+ return readJson(`generated/payload-schema/${profile}.public.schema.json`);
42
+ }
43
+ /** The generated JSON Schema (2020-12) for the profile's restricted tiers. */
44
+ export function readRestrictedPayloadSchema(profile) {
45
+ return readJson(`generated/payload-schema/${profile}.restricted.schema.json`);
46
+ }
47
+ /** The generated consumer document in the legacy registry and application shape. */
48
+ export function readConsumerDocument(profile) {
49
+ return readJson(`generated/consumer/${profile.replace('@', '-v')}.json`);
50
+ }
51
+ /** Exchange profiles this package catalogues (spec/exchange.md section 2). */
52
+ export const EXCHANGE_PROFILE_IDS = ['untp-0.7.0-jose@1', 'vsc-draft-compat@0.1.0', 'vc-di-ecdsa-rdfc-2019@1'];
53
+ /** Operator profiles this package catalogues (spec/services.md, spec/conformance.md section 4). */
54
+ export const OPERATOR_PROFILE_IDS = ['single-operator@1', 'federated-operators@1'];
55
+ /** The manifest of one exchange profile: representation, artefacts with their retrieval state, proof suites, anchoring, mappings. */
56
+ export function readExchangeProfile(profile) {
57
+ return readJson(`manifests/exchange/${profile}.json`);
58
+ }
59
+ /** The manifest of one operator profile: admission, publisher policy, discovery, synchronisation, retention and acceptance exercises. */
60
+ export function readOperatorProfile(profile) {
61
+ return readJson(`manifests/operator/${profile}.json`);
62
+ }
63
+ /**
64
+ * Interoperability profiles this package catalogues
65
+ * (`schemas/interoperability-profile.schema.json`): how a passport is
66
+ * discovered (spec/gs1-discovery.md), how source events are exchanged and how
67
+ * a source is mapped into an existing credential profile
68
+ * (spec/epcis-interoperability.md). Neither industry profiles nor signed
69
+ * credential formats, and never a mapping to a native operation.
70
+ */
71
+ export const INTEROPERABILITY_PROFILE_IDS = ['gs1-digital-link@1', 'epcis-json@1', 'epcis-vsc@1'];
72
+ /** The manifest of one interoperability profile: role, pinned standards and artefacts, formats, dependencies, limits and what it cannot map. */
73
+ export function readInteroperabilityProfile(profile) {
74
+ return readJson(`manifests/interoperability/${profile}.json`);
75
+ }
76
+ /** The frozen digests every published manifest and generated file is held to. */
77
+ export function readFrozen() {
78
+ return readJson('frozen.json');
79
+ }
80
+ /**
81
+ * The fields of a manifest that apply to one product category, the rule
82
+ * `spec/profiles.md` §3 sets: `always` applies, `category-in` applies to the
83
+ * named categories, and `needs-review` is returned separately because no code
84
+ * can decide it. The caller shows the review list rather than treating it as
85
+ * satisfied or as universally required.
86
+ */
87
+ export function fieldsFor(manifest, category) {
88
+ const applies = [];
89
+ const needsReview = [];
90
+ const notApplicable = [];
91
+ for (const field of manifest.fields) {
92
+ const rule = field.applicability;
93
+ const inCategory = rule.categories == null || category == null || rule.categories.includes(category);
94
+ if (!inCategory)
95
+ notApplicable.push(field);
96
+ else if (rule.rule === 'needs-review')
97
+ needsReview.push(field);
98
+ else
99
+ applies.push(field);
100
+ }
101
+ return { applies, needsReview, notApplicable };
102
+ }
103
+ /**
104
+ * Which required fields a public payload is missing, under the same three-way
105
+ * rule: a field under review is listed separately and never blocks. Values are
106
+ * read at the field's pointer; a value counts as present when it is not
107
+ * undefined, null, an empty string or an empty array.
108
+ */
109
+ export function missingRequired(manifest, payload, category) {
110
+ const { applies, needsReview } = fieldsFor(manifest, category);
111
+ const present = (field) => {
112
+ const value = payload[field.key];
113
+ if (value === undefined || value === null || value === '')
114
+ return false;
115
+ if (Array.isArray(value) && value.length === 0)
116
+ return false;
117
+ return true;
118
+ };
119
+ return {
120
+ missing: applies.filter((f) => f.obligation === 'required' && ['form', 'brand', 'platform'].includes(f.provenance.capture) && !present(f)),
121
+ needsReview: needsReview.filter((f) => f.obligation === 'required' && !present(f)),
122
+ };
123
+ }
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}