@wemush/wols 1.2.0 → 1.3.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.
- package/CHANGELOG.md +170 -0
- package/README.md +204 -31
- package/dist/cjs/compact-url.d.ts +150 -0
- package/dist/cjs/compact-url.d.ts.map +1 -0
- package/dist/cjs/crypto/decrypt.d.ts +110 -0
- package/dist/cjs/crypto/decrypt.d.ts.map +1 -0
- package/dist/cjs/crypto/decrypt.js +519 -99
- package/dist/cjs/crypto/decrypt.js.map +1 -1
- package/dist/cjs/crypto/encrypt.d.ts +132 -0
- package/dist/cjs/crypto/encrypt.d.ts.map +1 -0
- package/dist/cjs/crypto/encrypt.js +281 -200
- package/dist/cjs/crypto/encrypt.js.map +1 -1
- package/dist/cjs/crypto/index.d.ts +12 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +15 -2
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/crypto/shared.d.ts +116 -0
- package/dist/cjs/crypto/shared.d.ts.map +1 -0
- package/dist/cjs/crypto/shared.js +238 -0
- package/dist/cjs/crypto/shared.js.map +1 -0
- package/dist/cjs/errors.d.ts +133 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +39 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.d.ts +29 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +19 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/parser.d.ts +30 -0
- package/dist/cjs/parser.d.ts.map +1 -0
- package/dist/cjs/qr/generate.d.ts +62 -0
- package/dist/cjs/qr/generate.d.ts.map +1 -0
- package/dist/cjs/qr/index.d.ts +10 -0
- package/dist/cjs/qr/index.d.ts.map +1 -0
- package/dist/cjs/specimen.d.ts +96 -0
- package/dist/cjs/specimen.d.ts.map +1 -0
- package/dist/cjs/specimen.js +84 -11
- package/dist/cjs/specimen.js.map +1 -1
- package/dist/cjs/types.d.ts +735 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +65 -5
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/cuid.d.ts +46 -0
- package/dist/cjs/utils/cuid.d.ts.map +1 -0
- package/dist/cjs/utils/cuid.js +6 -4
- package/dist/cjs/utils/cuid.js.map +1 -1
- package/dist/cjs/utils/environment.d.ts +137 -0
- package/dist/cjs/utils/environment.d.ts.map +1 -0
- package/dist/cjs/utils/iso8601.d.ts +79 -0
- package/dist/cjs/utils/iso8601.d.ts.map +1 -0
- package/dist/cjs/utils/migration.d.ts +162 -0
- package/dist/cjs/utils/migration.d.ts.map +1 -0
- package/dist/cjs/validator.d.ts +25 -0
- package/dist/cjs/validator.d.ts.map +1 -0
- package/dist/cjs/validator.js +33 -22
- package/dist/cjs/validator.js.map +1 -1
- package/dist/esm/crypto/decrypt.js +515 -99
- package/dist/esm/crypto/decrypt.js.map +1 -1
- package/dist/esm/crypto/encrypt.js +277 -200
- package/dist/esm/crypto/encrypt.js.map +1 -1
- package/dist/esm/crypto/index.js +5 -3
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/crypto/shared.js +222 -0
- package/dist/esm/crypto/shared.js.map +1 -0
- package/dist/esm/errors.js +37 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +6 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/specimen.js +84 -12
- package/dist/esm/specimen.js.map +1 -1
- package/dist/esm/types.js +63 -4
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/cuid.js +6 -4
- package/dist/esm/utils/cuid.js.map +1 -1
- package/dist/esm/validator.js +34 -23
- package/dist/esm/validator.js.map +1 -1
- package/dist/types/crypto/decrypt.d.ts +93 -22
- package/dist/types/crypto/decrypt.d.ts.map +1 -1
- package/dist/types/crypto/encrypt.d.ts +106 -61
- package/dist/types/crypto/encrypt.d.ts.map +1 -1
- package/dist/types/crypto/index.d.ts +5 -3
- package/dist/types/crypto/index.d.ts.map +1 -1
- package/dist/types/crypto/shared.d.ts +116 -0
- package/dist/types/crypto/shared.d.ts.map +1 -0
- package/dist/types/errors.d.ts +31 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +7 -7
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/specimen.d.ts +29 -4
- package/dist/types/specimen.d.ts.map +1 -1
- package/dist/types/types.d.ts +265 -40
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/cuid.d.ts +5 -3
- package/dist/types/utils/cuid.d.ts.map +1 -1
- package/dist/types/validator.d.ts +1 -1
- package/dist/types/validator.d.ts.map +1 -1
- package/package.json +32 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/types.js
CHANGED
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
* WOLS TypeScript Library - Core Types
|
|
4
4
|
*
|
|
5
5
|
* This module defines all the core types, interfaces, and enums
|
|
6
|
-
* for the WeMush Open Labeling Standard (WOLS) v1.
|
|
6
|
+
* for the WeMush Open Labeling Standard (WOLS) v1.3.0.
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
* @module @wemush/wols
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.GROWTH_STAGES = exports.WOLS_TO_PLATFORM_MAP = exports.SPECIMEN_TYPES = exports.WOLS_CONTEXT = exports.WOLS_VERSION = void 0;
|
|
12
|
+
exports.GROWTH_STAGES = exports.WOLS_TO_PLATFORM_MAP = exports.PRIMORDIA_TYPE_ALIAS = exports.SPECIMEN_TYPES = exports.WOLS_CONTEXT = exports.WOLS_VERSION = void 0;
|
|
13
13
|
exports.asSpecimenId = asSpecimenId;
|
|
14
14
|
exports.registerTypeAlias = registerTypeAlias;
|
|
15
15
|
exports.resolveTypeAlias = resolveTypeAlias;
|
|
16
|
+
exports.resolveTypeAndStage = resolveTypeAndStage;
|
|
16
17
|
exports.getTypeAliases = getTypeAliases;
|
|
17
18
|
exports.mapToWolsType = mapToWolsType;
|
|
18
19
|
exports.mapFromWolsType = mapFromWolsType;
|
|
@@ -28,7 +29,7 @@ exports.isStrain = isStrain;
|
|
|
28
29
|
/**
|
|
29
30
|
* WOLS specification version implemented by this library.
|
|
30
31
|
*/
|
|
31
|
-
exports.WOLS_VERSION = '1.
|
|
32
|
+
exports.WOLS_VERSION = '1.3.0';
|
|
32
33
|
/**
|
|
33
34
|
* JSON-LD context URL for WOLS specimens.
|
|
34
35
|
*/
|
|
@@ -79,7 +80,9 @@ const TYPE_ALIAS_REGISTRY = new Map([
|
|
|
79
80
|
// Fruiting aliases
|
|
80
81
|
['FLUSH', 'FRUITING'],
|
|
81
82
|
['PINNING', 'FRUITING'],
|
|
82
|
-
|
|
83
|
+
// PRIMORDIA is a reserved alias (v1.3.0): it resolves to FRUITING, and
|
|
84
|
+
// createSpecimen() additionally sets stage PRIMORDIA. See PRIMORDIA_TYPE_ALIAS.
|
|
85
|
+
['PRIMORDIA', 'FRUITING'],
|
|
83
86
|
['FRUIT', 'FRUITING'],
|
|
84
87
|
['FIRST_FLUSH', 'FRUITING'],
|
|
85
88
|
// Harvest aliases
|
|
@@ -88,11 +91,22 @@ const TYPE_ALIAS_REGISTRY = new Map([
|
|
|
88
91
|
['PROCESSED', 'HARVEST'],
|
|
89
92
|
['EXTRACT', 'HARVEST'],
|
|
90
93
|
]);
|
|
94
|
+
/**
|
|
95
|
+
* Reserved type alias with special handling (WOLS v1.3.0).
|
|
96
|
+
*
|
|
97
|
+
* `PRIMORDIA` is a GrowthStage, not a SpecimenType. When it is supplied as a
|
|
98
|
+
* type, it resolves to `FRUITING` and `createSpecimen()` sets
|
|
99
|
+
* `stage: 'PRIMORDIA'` unless a stage was supplied.
|
|
100
|
+
*
|
|
101
|
+
* @since 1.3.0
|
|
102
|
+
*/
|
|
103
|
+
exports.PRIMORDIA_TYPE_ALIAS = 'PRIMORDIA';
|
|
91
104
|
/**
|
|
92
105
|
* Register a custom type alias.
|
|
93
106
|
*
|
|
94
107
|
* @param alias - The alias string (case-insensitive, stored uppercase)
|
|
95
108
|
* @param wolsType - The canonical WOLS SpecimenType
|
|
109
|
+
* @throws Error if `alias` is the reserved `PRIMORDIA` alias
|
|
96
110
|
*
|
|
97
111
|
* @example
|
|
98
112
|
* ```typescript
|
|
@@ -100,7 +114,11 @@ const TYPE_ALIAS_REGISTRY = new Map([
|
|
|
100
114
|
* ```
|
|
101
115
|
*/
|
|
102
116
|
function registerTypeAlias(alias, wolsType) {
|
|
103
|
-
|
|
117
|
+
const upper = alias.toUpperCase();
|
|
118
|
+
if (upper === exports.PRIMORDIA_TYPE_ALIAS && wolsType !== 'FRUITING') {
|
|
119
|
+
throw new Error(`'${exports.PRIMORDIA_TYPE_ALIAS}' is a reserved alias for FRUITING and cannot be remapped`);
|
|
120
|
+
}
|
|
121
|
+
TYPE_ALIAS_REGISTRY.set(upper, wolsType);
|
|
104
122
|
}
|
|
105
123
|
/**
|
|
106
124
|
* Resolve a type alias to its canonical WOLS type.
|
|
@@ -115,6 +133,10 @@ function registerTypeAlias(alias, wolsType) {
|
|
|
115
133
|
* resolveTypeAlias('CULTURE') // Returns 'CULTURE'
|
|
116
134
|
* resolveTypeAlias('unknown') // Returns 'unknown'
|
|
117
135
|
* ```
|
|
136
|
+
*
|
|
137
|
+
* @remarks Maps the type only. `PRIMORDIA` resolves to `FRUITING` here and
|
|
138
|
+
* the PRIMORDIA stage is lost; use {@link resolveTypeAndStage} when building
|
|
139
|
+
* a specimen from user input.
|
|
118
140
|
*/
|
|
119
141
|
function resolveTypeAlias(typeOrAlias) {
|
|
120
142
|
const upper = typeOrAlias.toUpperCase();
|
|
@@ -126,6 +148,40 @@ function resolveTypeAlias(typeOrAlias) {
|
|
|
126
148
|
const resolved = TYPE_ALIAS_REGISTRY.get(upper);
|
|
127
149
|
return resolved ?? typeOrAlias;
|
|
128
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Resolve a supplied specimen type (canonical or alias, any case) together
|
|
153
|
+
* with its stage, applying the reserved `PRIMORDIA` rule (WOLS v1.3.0).
|
|
154
|
+
*
|
|
155
|
+
* This is the single source of truth used by `createSpecimen()` and
|
|
156
|
+
* `serializeSpecimen()`. `resolveTypeAlias()` and `mapToWolsType()` map the
|
|
157
|
+
* type only; integrations that map a type and then build a specimen
|
|
158
|
+
* themselves should use this function so the `PRIMORDIA` stage is not lost.
|
|
159
|
+
*
|
|
160
|
+
* - `PRIMORDIA` resolves to `FRUITING`, and `stage` becomes `'PRIMORDIA'`
|
|
161
|
+
* only when no stage was supplied (a supplied stage is never overridden).
|
|
162
|
+
* `primordia` is `true` so callers can warn.
|
|
163
|
+
* - Other aliases resolve the type and leave `stage` unchanged.
|
|
164
|
+
* - Unknown types return `null`.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```typescript
|
|
168
|
+
* resolveTypeAndStage('primordia') // { type: 'FRUITING', stage: 'PRIMORDIA', primordia: true }
|
|
169
|
+
* resolveTypeAndStage('PRIMORDIA', 'FRUITING') // { type: 'FRUITING', stage: 'FRUITING', primordia: true }
|
|
170
|
+
* resolveTypeAndStage('LC') // { type: 'CULTURE', stage: undefined, primordia: false }
|
|
171
|
+
* ```
|
|
172
|
+
*
|
|
173
|
+
* @since 1.3.0
|
|
174
|
+
*/
|
|
175
|
+
function resolveTypeAndStage(type, stage) {
|
|
176
|
+
if (typeof type !== 'string') {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
if (type.toUpperCase() === exports.PRIMORDIA_TYPE_ALIAS) {
|
|
180
|
+
return { type: 'FRUITING', stage: stage ?? 'PRIMORDIA', primordia: true };
|
|
181
|
+
}
|
|
182
|
+
const resolved = resolveTypeAlias(type);
|
|
183
|
+
return isSpecimenType(resolved) ? { type: resolved, stage, primordia: false } : null;
|
|
184
|
+
}
|
|
129
185
|
/**
|
|
130
186
|
* Get all registered type aliases.
|
|
131
187
|
*
|
|
@@ -167,6 +223,10 @@ exports.WOLS_TO_PLATFORM_MAP = {
|
|
|
167
223
|
* mapToWolsType('Unknown Type') // Returns null
|
|
168
224
|
* ```
|
|
169
225
|
*
|
|
226
|
+
* @remarks Maps the type only. `PRIMORDIA` maps to `FRUITING` and the
|
|
227
|
+
* PRIMORDIA stage is lost; use {@link resolveTypeAndStage} when building a
|
|
228
|
+
* specimen from user input.
|
|
229
|
+
*
|
|
170
230
|
* @since 1.2.0
|
|
171
231
|
*/
|
|
172
232
|
function mapToWolsType(platformType) {
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAoCH,oCAEC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CUID2 Generator - Zero-dependency implementation
|
|
3
|
+
*
|
|
4
|
+
* Generates collision-resistant unique identifiers following the CUID2 algorithm.
|
|
5
|
+
* This is a minimal implementation focused on the needs of WOLS specimen IDs.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/cuid
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Generate a CUID2-style identifier.
|
|
11
|
+
*
|
|
12
|
+
* The ID format is: [random][timestamp][counter][fingerprint][random]
|
|
13
|
+
* All components are base36 encoded for URL safety.
|
|
14
|
+
*
|
|
15
|
+
* @param length - Length of the generated ID (default: 24)
|
|
16
|
+
* @returns A unique, URL-safe identifier
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const id = createId();
|
|
21
|
+
* // Returns something like: "clx1a2b3c4d5e6f7g8h9i0j1"
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function createId(length?: number): string;
|
|
25
|
+
/**
|
|
26
|
+
* Generate a specimen ID with the WOLS prefix.
|
|
27
|
+
*
|
|
28
|
+
* @returns A specimen ID in format "wemush:{cuid}"
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const specimenId = createSpecimenId();
|
|
33
|
+
* // Returns: "wemush:clx1a2b3c4d5e6f7g8h9i0j1"
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function createSpecimenId(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Validate a specimen ID: the `wemush:` prefix followed by any non-empty suffix
|
|
39
|
+
* (WOLS v1.3.0). Pass `strict: true` for the CUID-style `wemush:[a-z0-9]+` check.
|
|
40
|
+
*
|
|
41
|
+
* @param id - The ID to validate
|
|
42
|
+
* @param strict - Require a lowercase alphanumeric suffix
|
|
43
|
+
* @returns true if the ID is valid
|
|
44
|
+
*/
|
|
45
|
+
export declare function isValidSpecimenId(id: string, strict?: boolean): boolean;
|
|
46
|
+
//# sourceMappingURL=cuid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuid.d.ts","sourceRoot":"","sources":["../../../src/utils/cuid.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuGH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,MAAM,GAAE,MAAuB,GAAG,MAAM,CAiBhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAErE"}
|
package/dist/cjs/utils/cuid.js
CHANGED
|
@@ -139,12 +139,14 @@ function createSpecimenId() {
|
|
|
139
139
|
return `wemush:${createId()}`;
|
|
140
140
|
}
|
|
141
141
|
/**
|
|
142
|
-
* Validate a specimen ID
|
|
142
|
+
* Validate a specimen ID: the `wemush:` prefix followed by any non-empty suffix
|
|
143
|
+
* (WOLS v1.3.0). Pass `strict: true` for the CUID-style `wemush:[a-z0-9]+` check.
|
|
143
144
|
*
|
|
144
145
|
* @param id - The ID to validate
|
|
145
|
-
* @
|
|
146
|
+
* @param strict - Require a lowercase alphanumeric suffix
|
|
147
|
+
* @returns true if the ID is valid
|
|
146
148
|
*/
|
|
147
|
-
function isValidSpecimenId(id) {
|
|
148
|
-
return /^wemush:[a-z0-9]+$/.test(id);
|
|
149
|
+
function isValidSpecimenId(id, strict = false) {
|
|
150
|
+
return strict ? /^wemush:[a-z0-9]+$/.test(id) : id.startsWith('wemush:') && id.length > 7;
|
|
149
151
|
}
|
|
150
152
|
//# sourceMappingURL=cuid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cuid.js","sourceRoot":"","sources":["../../../src/utils/cuid.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAsHH,4BAiBC;AAaD,4CAEC;
|
|
1
|
+
{"version":3,"file":"cuid.js","sourceRoot":"","sources":["../../../src/utils/cuid.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment Detection Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides runtime environment detection for selecting
|
|
5
|
+
* appropriate crypto implementations and other environment-specific behavior.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/environment
|
|
8
|
+
* @since 1.2.0
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Runtime environment type.
|
|
12
|
+
*
|
|
13
|
+
* @since 1.2.0
|
|
14
|
+
*/
|
|
15
|
+
export type RuntimeEnvironment = 'node' | 'browser' | 'webworker' | 'deno' | 'bun' | 'unknown';
|
|
16
|
+
/**
|
|
17
|
+
* Check if running in a server-side Node.js environment.
|
|
18
|
+
*
|
|
19
|
+
* @returns True if running in Node.js, false otherwise
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* if (isServer()) {
|
|
24
|
+
* // Use Node.js crypto module
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @since 1.2.0
|
|
29
|
+
*/
|
|
30
|
+
export declare function isServer(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check if running in a browser environment.
|
|
33
|
+
*
|
|
34
|
+
* @returns True if running in a browser, false otherwise
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* if (isBrowser()) {
|
|
39
|
+
* // Use Web Crypto API
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @since 1.2.0
|
|
44
|
+
*/
|
|
45
|
+
export declare function isBrowser(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if running in a Web Worker environment.
|
|
48
|
+
*
|
|
49
|
+
* @returns True if running in a Web Worker, false otherwise
|
|
50
|
+
*
|
|
51
|
+
* @since 1.2.0
|
|
52
|
+
*/
|
|
53
|
+
export declare function isWebWorker(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Check if running in Deno environment.
|
|
56
|
+
*
|
|
57
|
+
* @returns True if running in Deno, false otherwise
|
|
58
|
+
*
|
|
59
|
+
* @since 1.2.0
|
|
60
|
+
*/
|
|
61
|
+
export declare function isDeno(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Check if running in Bun environment.
|
|
64
|
+
*
|
|
65
|
+
* @returns True if running in Bun, false otherwise
|
|
66
|
+
*
|
|
67
|
+
* @since 1.2.0
|
|
68
|
+
*/
|
|
69
|
+
export declare function isBun(): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Get the current runtime environment.
|
|
72
|
+
*
|
|
73
|
+
* @returns The detected runtime environment
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const env = getRuntimeEnvironment();
|
|
78
|
+
* console.log(`Running in: ${env}`);
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @since 1.2.0
|
|
82
|
+
*/
|
|
83
|
+
export declare function getRuntimeEnvironment(): RuntimeEnvironment;
|
|
84
|
+
/**
|
|
85
|
+
* Check if Web Crypto API is available.
|
|
86
|
+
*
|
|
87
|
+
* @returns True if Web Crypto API is available, false otherwise
|
|
88
|
+
*
|
|
89
|
+
* @since 1.2.0
|
|
90
|
+
*/
|
|
91
|
+
export declare function supportsWebCrypto(): boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Check if Node.js crypto module is available.
|
|
94
|
+
*
|
|
95
|
+
* Note: This performs a synchronous check and does not actually import the module.
|
|
96
|
+
*
|
|
97
|
+
* @returns True if likely running in Node.js with crypto support, false otherwise
|
|
98
|
+
*
|
|
99
|
+
* @since 1.2.0
|
|
100
|
+
*/
|
|
101
|
+
export declare function supportsNodeCrypto(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Check if any cryptographic support is available.
|
|
104
|
+
*
|
|
105
|
+
* This is useful for determining if encryption/decryption features can be used.
|
|
106
|
+
*
|
|
107
|
+
* @returns True if crypto is supported, false otherwise
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* if (isCryptoSupported()) {
|
|
112
|
+
* const encrypted = await encryptSpecimen(specimen, { key: password });
|
|
113
|
+
* } else {
|
|
114
|
+
* console.warn('Crypto not supported in this environment');
|
|
115
|
+
* }
|
|
116
|
+
* ```
|
|
117
|
+
*
|
|
118
|
+
* @since 1.2.0
|
|
119
|
+
*/
|
|
120
|
+
export declare function isCryptoSupported(): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Check if TextEncoder/TextDecoder are available.
|
|
123
|
+
*
|
|
124
|
+
* @returns True if text encoding is supported, false otherwise
|
|
125
|
+
*
|
|
126
|
+
* @since 1.2.0
|
|
127
|
+
*/
|
|
128
|
+
export declare function supportsTextEncoding(): boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Check if URL and URLSearchParams are available.
|
|
131
|
+
*
|
|
132
|
+
* @returns True if URL APIs are supported, false otherwise
|
|
133
|
+
*
|
|
134
|
+
* @since 1.2.0
|
|
135
|
+
*/
|
|
136
|
+
export declare function supportsURLAPIs(): boolean;
|
|
137
|
+
//# sourceMappingURL=environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAM/F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,IAAI,OAAO,CAMlC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAMnC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,IAAI,OAAO,CAkBrC;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAKhC;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAK/B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAO1D;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAM3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAM9C;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISO 8601 Date Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides parsing and formatting for ISO 8601 date strings
|
|
5
|
+
* as used in WOLS specimens.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/iso8601
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Check if a string is a valid ISO 8601 date.
|
|
11
|
+
*
|
|
12
|
+
* @param value - The string to validate
|
|
13
|
+
* @returns true if valid ISO 8601 format
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* isValidISO8601('2025-12-16T10:30:00Z'); // true
|
|
18
|
+
* isValidISO8601('2025-12-16'); // false (date-only)
|
|
19
|
+
* isValidISO8601('invalid'); // false
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare function isValidISO8601(value: string): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a string is a valid date-only format (YYYY-MM-DD).
|
|
25
|
+
*
|
|
26
|
+
* @param value - The string to validate
|
|
27
|
+
* @returns true if valid date-only format
|
|
28
|
+
*/
|
|
29
|
+
export declare function isValidDateOnly(value: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get the current timestamp in ISO 8601 format.
|
|
32
|
+
*
|
|
33
|
+
* @returns Current time as ISO 8601 string
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const now = getCurrentISO8601();
|
|
38
|
+
* // Returns: "2025-12-16T10:30:00.000Z"
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function getCurrentISO8601(): string;
|
|
42
|
+
/**
|
|
43
|
+
* Parse an ISO 8601 date string to a Date object.
|
|
44
|
+
*
|
|
45
|
+
* @param value - The ISO 8601 string to parse
|
|
46
|
+
* @returns The parsed Date, or null if invalid
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const date = parseISO8601('2025-12-16T10:30:00Z');
|
|
51
|
+
* // Returns: Date object
|
|
52
|
+
*
|
|
53
|
+
* const invalid = parseISO8601('invalid');
|
|
54
|
+
* // Returns: null
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export declare function parseISO8601(value: string): Date | null;
|
|
58
|
+
/**
|
|
59
|
+
* Format a Date object to ISO 8601 string.
|
|
60
|
+
*
|
|
61
|
+
* @param date - The Date to format
|
|
62
|
+
* @returns ISO 8601 string
|
|
63
|
+
*/
|
|
64
|
+
export declare function formatISO8601(date: Date): string;
|
|
65
|
+
/**
|
|
66
|
+
* Get Unix timestamp (seconds since epoch) from ISO 8601 string.
|
|
67
|
+
*
|
|
68
|
+
* @param value - The ISO 8601 string
|
|
69
|
+
* @returns Unix timestamp in seconds, or null if invalid
|
|
70
|
+
*/
|
|
71
|
+
export declare function toUnixTimestamp(value: string): number | null;
|
|
72
|
+
/**
|
|
73
|
+
* Convert Unix timestamp to ISO 8601 string.
|
|
74
|
+
*
|
|
75
|
+
* @param timestamp - Unix timestamp in seconds
|
|
76
|
+
* @returns ISO 8601 string
|
|
77
|
+
*/
|
|
78
|
+
export declare function fromUnixTimestamp(timestamp: number): string;
|
|
79
|
+
//# sourceMappingURL=iso8601.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iso8601.d.ts","sourceRoot":"","sources":["../../../src/utils/iso8601.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKvD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAE3D"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version Migration Utilities
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for comparing WOLS versions and
|
|
5
|
+
* migrating specimens between versions.
|
|
6
|
+
*
|
|
7
|
+
* @module utils/migration
|
|
8
|
+
* @since 1.2.0
|
|
9
|
+
*/
|
|
10
|
+
import type { Specimen } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Version comparison result.
|
|
13
|
+
*
|
|
14
|
+
* - `-1`: First version is older than second
|
|
15
|
+
* - `0`: Versions are equal
|
|
16
|
+
* - `1`: First version is newer than second
|
|
17
|
+
*
|
|
18
|
+
* @since 1.2.0
|
|
19
|
+
*/
|
|
20
|
+
export type VersionComparison = -1 | 0 | 1;
|
|
21
|
+
/**
|
|
22
|
+
* Migration handler function signature.
|
|
23
|
+
*
|
|
24
|
+
* @since 1.2.0
|
|
25
|
+
*/
|
|
26
|
+
export type MigrationHandler = (specimen: Specimen) => Specimen;
|
|
27
|
+
/**
|
|
28
|
+
* Migration definition.
|
|
29
|
+
*
|
|
30
|
+
* @since 1.2.0
|
|
31
|
+
*/
|
|
32
|
+
interface MigrationDefinition {
|
|
33
|
+
from: string;
|
|
34
|
+
to: string;
|
|
35
|
+
handler: MigrationHandler;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Compare two semantic versions.
|
|
39
|
+
*
|
|
40
|
+
* @param a - First version string
|
|
41
|
+
* @param b - Second version string
|
|
42
|
+
* @returns -1 if a < b, 0 if a === b, 1 if a > b
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* compareVersions('1.0.0', '1.1.0') // Returns -1
|
|
47
|
+
* compareVersions('1.1.0', '1.1.0') // Returns 0
|
|
48
|
+
* compareVersions('2.0.0', '1.9.0') // Returns 1
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @since 1.2.0
|
|
52
|
+
*/
|
|
53
|
+
export declare function compareVersions(a: string, b: string): VersionComparison;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a specimen is using an outdated WOLS version.
|
|
56
|
+
*
|
|
57
|
+
* @param specimen - Specimen object or version string
|
|
58
|
+
* @returns True if the specimen version is older than current library version
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* isOutdated(specimen) // True if specimen.version < WOLS_VERSION
|
|
63
|
+
* isOutdated('1.0.0') // True (older than current)
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @since 1.2.0
|
|
67
|
+
*/
|
|
68
|
+
export declare function isOutdated(specimen: Specimen | string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Check if a specimen is using a newer WOLS version than this library.
|
|
71
|
+
*
|
|
72
|
+
* This can happen when specimens are created by a newer library version.
|
|
73
|
+
*
|
|
74
|
+
* @param specimen - Specimen object or version string
|
|
75
|
+
* @returns True if the specimen version is newer than current library version
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* isNewer(specimen) // True if specimen.version > WOLS_VERSION
|
|
80
|
+
* isNewer('2.0.0') // True if library is 1.x
|
|
81
|
+
* ```
|
|
82
|
+
*
|
|
83
|
+
* @since 1.2.0
|
|
84
|
+
*/
|
|
85
|
+
export declare function isNewer(specimen: Specimen | string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Get the current library WOLS version.
|
|
88
|
+
*
|
|
89
|
+
* @returns The WOLS version this library implements
|
|
90
|
+
*
|
|
91
|
+
* @since 1.2.0
|
|
92
|
+
*/
|
|
93
|
+
export declare function getCurrentVersion(): string;
|
|
94
|
+
/**
|
|
95
|
+
* Register a migration handler for upgrading specimens between versions.
|
|
96
|
+
*
|
|
97
|
+
* Migrations are applied in order from oldest to newest when calling `migrate()`.
|
|
98
|
+
*
|
|
99
|
+
* @param from - Source version (e.g., "1.0.0")
|
|
100
|
+
* @param to - Target version (e.g., "1.1.0")
|
|
101
|
+
* @param handler - Function to transform the specimen
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* registerMigration('1.0.0', '1.1.0', (specimen) => {
|
|
106
|
+
* // Add new required field with default value
|
|
107
|
+
* return { ...specimen, newField: 'default' };
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*
|
|
111
|
+
* @since 1.2.0
|
|
112
|
+
*/
|
|
113
|
+
export declare function registerMigration(from: string, to: string, handler: MigrationHandler): void;
|
|
114
|
+
/**
|
|
115
|
+
* Check if a specimen can be migrated to the current version.
|
|
116
|
+
*
|
|
117
|
+
* @param specimen - Specimen to check
|
|
118
|
+
* @returns True if migration path exists, false otherwise
|
|
119
|
+
*
|
|
120
|
+
* @since 1.2.0
|
|
121
|
+
*/
|
|
122
|
+
export declare function canMigrate(specimen: Specimen): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Migrate a specimen to the current WOLS version.
|
|
125
|
+
*
|
|
126
|
+
* Applies all registered migrations in order from the specimen's version
|
|
127
|
+
* to the current library version.
|
|
128
|
+
*
|
|
129
|
+
* @param specimen - Specimen to migrate
|
|
130
|
+
* @returns Migrated specimen with updated version
|
|
131
|
+
* @throws Error if no migration path exists
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const oldSpecimen = parseSpecimen(oldJson);
|
|
136
|
+
* if (isOutdated(oldSpecimen)) {
|
|
137
|
+
* const updated = migrate(oldSpecimen);
|
|
138
|
+
* console.log('Migrated to:', updated.version);
|
|
139
|
+
* }
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* @since 1.2.0
|
|
143
|
+
*/
|
|
144
|
+
export declare function migrate(specimen: Specimen): Specimen;
|
|
145
|
+
/**
|
|
146
|
+
* Get all registered migrations.
|
|
147
|
+
*
|
|
148
|
+
* @returns Array of migration definitions
|
|
149
|
+
*
|
|
150
|
+
* @since 1.2.0
|
|
151
|
+
*/
|
|
152
|
+
export declare function getMigrations(): readonly MigrationDefinition[];
|
|
153
|
+
/**
|
|
154
|
+
* Clear all registered migrations.
|
|
155
|
+
*
|
|
156
|
+
* Primarily useful for testing.
|
|
157
|
+
*
|
|
158
|
+
* @since 1.2.0
|
|
159
|
+
*/
|
|
160
|
+
export declare function clearMigrations(): void;
|
|
161
|
+
export {};
|
|
162
|
+
//# sourceMappingURL=migration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/utils/migration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,CAAC;AAEhE;;;;GAIG;AACH,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAgCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAmBvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAG/D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAG5D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAK3F;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAiBtD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAiCpD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,IAAI,SAAS,mBAAmB,EAAE,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
|