@restforgejs/platform 4.3.8 → 5.0.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 (193) hide show
  1. package/bin/sdf-tools.exe +0 -0
  2. package/build-info.json +2 -2
  3. package/cli/consumer-deploy.js +1 -1
  4. package/cli/consumer.js +1 -1
  5. package/generators/cli/init.js +4 -104
  6. package/generators/cli/payload/migrate.js +96 -96
  7. package/generators/cli/schema/list.js +82 -18
  8. package/generators/cli/schema/migrate.js +23 -3
  9. package/generators/lib/dbschema-kit/apply-engine.js +211 -46
  10. package/generators/lib/dbschema-kit/diff-engine.js +715 -703
  11. package/generators/lib/dbschema-kit/emitters/alter-table.js +96 -2
  12. package/generators/lib/dbschema-kit/introspect-mapper.js +9 -0
  13. package/generators/lib/migrate/backend-payload-migrator.js +221 -221
  14. package/generators/lib/migrate/field-type-resolver.js +325 -319
  15. package/generators/lib/migrate/label-generator.js +38 -38
  16. package/generators/lib/migrate/migrate-runner.js +244 -38
  17. package/generators/lib/migrate/naming.js +52 -43
  18. package/generators/lib/migrate/sql-parser.js +124 -124
  19. package/generators/lib/templates/dashboard-catalog.js +1 -1
  20. package/generators/lib/templates/db-connection-env.js +1 -1
  21. package/generators/lib/templates/dbschema-catalog.js +1 -1
  22. package/generators/lib/templates/field-validation-catalog.js +1 -1
  23. package/generators/lib/templates/mysql-template.js +1 -1
  24. package/generators/lib/templates/oracle-template.js +1 -1
  25. package/generators/lib/templates/postgres-template.js +1 -1
  26. package/generators/lib/templates/query-declarative-catalog.js +1 -1
  27. package/generators/lib/templates/sqlite-template.js +1 -1
  28. package/integrity-manifest.json +18 -18
  29. package/node_modules/brace-expansion/index.js +1 -1
  30. package/node_modules/brace-expansion/package.json +1 -1
  31. package/node_modules/dayjs/CHANGELOG.md +7 -0
  32. package/node_modules/dayjs/README.md +12 -10
  33. package/node_modules/dayjs/dayjs.min.js +1 -1
  34. package/node_modules/dayjs/esm/constant.js +1 -1
  35. package/node_modules/dayjs/esm/plugin/duration/index.js +5 -4
  36. package/node_modules/dayjs/locale.json +1 -1
  37. package/node_modules/dayjs/package.json +2 -2
  38. package/node_modules/dayjs/plugin/duration.js +1 -1
  39. package/node_modules/tmp/lib/tmp.js +37 -7
  40. package/node_modules/tmp/package.json +4 -16
  41. package/package.json +1 -1
  42. package/scripts/verify-integrity.js +1 -1
  43. package/server.js +1 -1
  44. package/src/components/handlers/adjust_handler.js +1 -1
  45. package/src/components/handlers/audit_handler.js +1 -1
  46. package/src/components/handlers/delete_handler.js +1 -1
  47. package/src/components/handlers/export_handler.js +1 -1
  48. package/src/components/handlers/import_handler.js +1 -1
  49. package/src/components/handlers/insert_handler.js +1 -1
  50. package/src/components/handlers/update_handler.js +1 -1
  51. package/src/components/handlers/upload_handler.js +1 -1
  52. package/src/components/handlers/workflow_handler.js +1 -1
  53. package/src/components/integrations/webhook.js +1 -1
  54. package/src/consumers/baseConsumer.js +1 -1
  55. package/src/consumers/declarativeMapper.js +1 -1
  56. package/src/consumers/handlers/apiHandler.js +1 -1
  57. package/src/consumers/handlers/consoleHandler.js +1 -1
  58. package/src/consumers/handlers/databaseHandler.js +1 -1
  59. package/src/consumers/handlers/index.js +1 -1
  60. package/src/consumers/handlers/kafkaHandler.js +1 -1
  61. package/src/consumers/index.js +1 -1
  62. package/src/consumers/messageTransformer.js +1 -1
  63. package/src/consumers/validator.js +1 -1
  64. package/src/core/db/dialect/base-dialect.js +1 -1
  65. package/src/core/db/dialect/index.js +1 -1
  66. package/src/core/db/dialect/mysql-dialect.js +1 -1
  67. package/src/core/db/dialect/oracle-dialect.js +1 -1
  68. package/src/core/db/dialect/postgres-dialect.js +1 -1
  69. package/src/core/db/dialect/sqlite-dialect.js +1 -1
  70. package/src/core/db/flatten-helper.js +1 -1
  71. package/src/core/db/query-builder-error.js +1 -1
  72. package/src/core/db/query-builder.js +1 -1
  73. package/src/core/db/relation-helper.js +1 -1
  74. package/src/core/handlers/delete_handler.js +1 -1
  75. package/src/core/handlers/insert_handler.js +1 -1
  76. package/src/core/handlers/update_handler.js +1 -1
  77. package/src/core/models/base-model.js +1 -1
  78. package/src/core/utils/cache-manager.js +1 -1
  79. package/src/core/utils/component-engine.js +1 -1
  80. package/src/core/utils/context-builder.js +1 -1
  81. package/src/core/utils/datetime-formatter.js +1 -1
  82. package/src/core/utils/datetime-parser.js +1 -1
  83. package/src/core/utils/db.js +1 -1
  84. package/src/core/utils/logger.js +1 -1
  85. package/src/core/utils/payload-loader.js +1 -1
  86. package/src/core/utils/security-checks.js +1 -1
  87. package/src/middleware/body-options.js +1 -1
  88. package/src/middleware/cors.js +1 -1
  89. package/src/middleware/idempotency.js +1 -1
  90. package/src/middleware/rate-limiter.js +1 -1
  91. package/src/middleware/request-logger.js +1 -1
  92. package/src/middleware/security-headers.js +1 -1
  93. package/src/models/base-model-mysql.js +1 -1
  94. package/src/models/base-model-oracle.js +1 -1
  95. package/src/models/base-model-sqlite.js +1 -1
  96. package/src/models/base-model.js +1 -1
  97. package/src/pro/caching/redis-client.js +1 -1
  98. package/src/pro/caching/redis-helper.js +1 -1
  99. package/src/pro/consumers/baseConsumer.js +1 -1
  100. package/src/pro/consumers/declarativeMapper.js +1 -1
  101. package/src/pro/consumers/handlers/apiHandler.js +1 -1
  102. package/src/pro/consumers/handlers/consoleHandler.js +1 -1
  103. package/src/pro/consumers/handlers/databaseHandler.js +1 -1
  104. package/src/pro/consumers/handlers/index.js +1 -1
  105. package/src/pro/consumers/handlers/kafkaHandler.js +1 -1
  106. package/src/pro/consumers/index.js +1 -1
  107. package/src/pro/consumers/messageTransformer.js +1 -1
  108. package/src/pro/consumers/validator.js +1 -1
  109. package/src/pro/database/base-model-mysql.js +1 -1
  110. package/src/pro/database/base-model-oracle.js +1 -1
  111. package/src/pro/database/base-model-sqlite.js +1 -1
  112. package/src/pro/database/db-mysql.js +1 -1
  113. package/src/pro/database/db-oracle.js +1 -1
  114. package/src/pro/database/db-sqlite.js +1 -1
  115. package/src/pro/excel/excel-generator.js +1 -1
  116. package/src/pro/excel/excel-parser.js +1 -1
  117. package/src/pro/excel/export-service.js +1 -1
  118. package/src/pro/excel/export_handler.js +1 -1
  119. package/src/pro/excel/import-service.js +1 -1
  120. package/src/pro/excel/import-validator.js +1 -1
  121. package/src/pro/excel/import_handler.js +1 -1
  122. package/src/pro/excel/upsert-builder.js +1 -1
  123. package/src/pro/idgen/idgen-routes.js +1 -1
  124. package/src/pro/integrations/lookup-resolver.js +1 -1
  125. package/src/pro/integrations/upload-handler-v2.js +1 -1
  126. package/src/pro/integrations/upload-handler.js +1 -1
  127. package/src/pro/integrations/webhook.js +1 -1
  128. package/src/pro/locking/lock-routes.js +1 -1
  129. package/src/pro/locking/resource-lock-manager.js +1 -1
  130. package/src/pro/messaging/kafkaConsumerService.js +1 -1
  131. package/src/pro/messaging/kafkaService.js +1 -1
  132. package/src/pro/messaging/messagehubService.js +1 -1
  133. package/src/pro/messaging/rabbitmqService.js +1 -1
  134. package/src/pro/scheduler/job-manager.js +1 -1
  135. package/src/pro/scheduler/job-routes.js +1 -1
  136. package/src/pro/scheduler/job-validator.js +1 -1
  137. package/src/pro/storage/base-storage-provider.js +1 -1
  138. package/src/pro/storage/file-metadata-helper.js +1 -1
  139. package/src/pro/storage/index.js +1 -1
  140. package/src/pro/storage/local-storage-provider.js +1 -1
  141. package/src/pro/storage/s3-storage-provider.js +1 -1
  142. package/src/pro/storage/upload-cleanup-job.js +1 -1
  143. package/src/pro/storage/upload-cleanup-scheduler.js +1 -1
  144. package/src/pro/storage/upload-pending-tracker.js +1 -1
  145. package/src/pro/websocket/broadcast-helper.js +1 -1
  146. package/src/pro/websocket/index.js +1 -1
  147. package/src/pro/websocket/livesync-server.js +1 -1
  148. package/src/pro/websocket/ws-broadcaster.js +1 -1
  149. package/src/services/export-service.js +1 -1
  150. package/src/services/import-service.js +1 -1
  151. package/src/services/kafkaConsumerService.js +1 -1
  152. package/src/services/kafkaService.js +1 -1
  153. package/src/services/messagehubService.js +1 -1
  154. package/src/services/rabbitmqService.js +1 -1
  155. package/src/utils/cache-invalidation-registry.js +1 -1
  156. package/src/utils/cache-manager.js +1 -1
  157. package/src/utils/component-engine.js +1 -1
  158. package/src/utils/config-extractor.js +1 -1
  159. package/src/utils/consumerLogger.js +1 -1
  160. package/src/utils/context-builder.js +1 -1
  161. package/src/utils/dashboard-helpers.js +1 -1
  162. package/src/utils/dateHelper.js +1 -1
  163. package/src/utils/datetime-formatter.js +1 -1
  164. package/src/utils/datetime-parser.js +1 -1
  165. package/src/utils/db-bootstrap.js +1 -1
  166. package/src/utils/db-mysql.js +1 -1
  167. package/src/utils/db-oracle.js +1 -1
  168. package/src/utils/db-sqlite.js +1 -1
  169. package/src/utils/db.js +1 -1
  170. package/src/utils/demo-generator.js +1 -1
  171. package/src/utils/excel-generator.js +1 -1
  172. package/src/utils/excel-parser.js +1 -1
  173. package/src/utils/file-watcher.js +1 -1
  174. package/src/utils/id-generator.js +1 -1
  175. package/src/utils/idempotency-manager.js +1 -1
  176. package/src/utils/import-validator.js +1 -1
  177. package/src/utils/license-client.js +1 -1
  178. package/src/utils/lock-manager.js +1 -1
  179. package/src/utils/logger.js +1 -1
  180. package/src/utils/lookup-resolver.js +1 -1
  181. package/src/utils/payload-loader.js +1 -1
  182. package/src/utils/processor-response.js +1 -1
  183. package/src/utils/rabbitmq.js +1 -1
  184. package/src/utils/redis-client.js +1 -1
  185. package/src/utils/redis-helper.js +1 -1
  186. package/src/utils/request-scope.js +1 -1
  187. package/src/utils/security-checks.js +1 -1
  188. package/src/utils/service-resolver.js +1 -1
  189. package/src/utils/shutdown-coordinator.js +1 -1
  190. package/src/utils/trusted-keys.js +1 -1
  191. package/src/utils/upload-handler.js +1 -1
  192. package/src/utils/upsert-builder.js +1 -1
  193. package/src/utils/workflow-hook-executor.js +1 -1
@@ -1,27 +1,27 @@
1
1
  {
2
- "version": "4.3.8",
3
- "generated": "2026-05-26T03:30:45.557Z",
2
+ "version": "5.0.1",
3
+ "generated": "2026-05-31T03:19:51.440Z",
4
4
  "generator": "restforge-build-system",
5
5
  "algorithm": "sha256",
6
6
  "files": {
7
- "server.js": "608a66c0885250c6b5c5afa9b9a3d04393955bfa6c55d699aca43f33e756cad0",
8
- "src/utils/license-client.js": "4ee6f9fd7f318510d733b2ae67ced63179cfd32bbb0f31995dd4c55db19505ba",
9
- "src/utils/trusted-keys.js": "b926d1b13d9b2bc0a2f9b9a0ff80ac2795e17f4a72ef547510aaf519ee657763",
10
- "cli/consumer.js": "c73b2143a086932b872ef3f4f9db95787dfba72bceb890fca4a212d9c53313cc",
11
- "src/utils/security-checks.js": "1d60f5962afffa0866f3fd731e2df1a9c84f902c97c6973a61efd6551102edef",
12
- "scripts/verify-integrity.js": "404f15805ab45bbcba5f4af03775ddd47330df812c4cb090298d97fab61e071f",
7
+ "server.js": "2a00acf82b46545d92744aa738d6e0f5c18e589a8cbf39f82cbce56cda172a1a",
8
+ "src/utils/license-client.js": "cb3485ce1b80693679e1befb1e3d1a05c52b2be9364b2fda6cf9605ed24257a4",
9
+ "src/utils/trusted-keys.js": "c99a0521c5fb97326f928452265d77f4d4c9d05b0761a2b267315c8bbc416d80",
10
+ "cli/consumer.js": "7fcee1e3c4b441e4730f3e2908bcaf832cd80c47140385951a6d2e7d0752a07d",
11
+ "src/utils/security-checks.js": "dd5b60c2410339b0d1501ff2a31f32373568256a9b3510477927e2f4018c3adf",
12
+ "scripts/verify-integrity.js": "e90f1ff83445a0c31fa27dbe883e3911c7fd8365627fb314d51ca391fa2ad695",
13
13
  "bin/restforge-hwinfo-linux": "d9a0071b0acf58a020e738a29837de356f531a5a84d363a2adc50563e3874b8f",
14
14
  "bin/restforge-hwinfo-darwin": "d35b15d4e6d7bbdd8317490335ba9602ce5c218519898fa3eabe18cc9c5bb1b6",
15
15
  "bin/restforge-hwinfo.exe": "351fa4d33459d30de804ee78deb5eb977b77b688fe1b7b461cdaa214a82f145e",
16
- "generators/lib/templates/mysql-template.js": "bb2c08d3c1ab4c6a6c5af463643129749c7d97e9fa8e087391e124bd3e0a802e",
17
- "generators/lib/templates/oracle-template.js": "8cddee37d65e675bd35d1a088a96ee5fbc57d76f2515afcd8767c5353fa21be8",
18
- "generators/lib/templates/postgres-template.js": "3acf533b4b750d2dc61b7a6a20a3bd1214aff587ba4ffbd1c4efc64f667cf35e",
19
- "generators/lib/templates/sqlite-template.js": "12bc9591ca488b1c1dd36c36196ab8ba9328d828dd47715e12fe42984827d6d1",
20
- "generators/lib/templates/dashboard-catalog.js": "72ea43fb58970193abbeb761b0d3222af8c5178744a0e17ca6fa086e9cccba61",
21
- "generators/lib/templates/dbschema-catalog.js": "118a2d40ef96128661409f3b438cfc6f5a2528e3e4b31cb383710b4a5c87ef64",
22
- "generators/lib/templates/field-validation-catalog.js": "c94aadb0dd1a561c28dd402ee474faf8c5552e96d2d8800aa9bb63911736adfb",
23
- "generators/lib/templates/query-declarative-catalog.js": "de20287b0627a369a8dee9e8b2cb5ac3f28e3c838a3f3ff926334b455c36f7f8",
24
- "generators/lib/templates/db-connection-env.js": "c52ac78cee56766e52cc72550210a91765cae15997e7e84aab993d0db394f8a2"
16
+ "generators/lib/templates/mysql-template.js": "393be6e36bbb0d7a90ea674985512156b4c7bd18a09cb0e0b488c82893cb5d31",
17
+ "generators/lib/templates/oracle-template.js": "5899cbf1b5b6b38ec5c2fb23f677650a10c6700597a879214959aa8fad6567f4",
18
+ "generators/lib/templates/postgres-template.js": "c862c0cba61720da1222657fa95fe18ffe6cc3e59e32022c9652389c6e51342e",
19
+ "generators/lib/templates/sqlite-template.js": "33e597b3120bcc862d891a8c23a02dfaa8e31e512c56f24aaeb37c105dc43945",
20
+ "generators/lib/templates/dashboard-catalog.js": "2eef46fb442bcd3325fd56758d22acdf88be8b1221e8b99a6b53804b91f10618",
21
+ "generators/lib/templates/dbschema-catalog.js": "70d65baeb0211a29ce824b24a4b27b66b83d07785afb85f90ba8964be0b3cac2",
22
+ "generators/lib/templates/field-validation-catalog.js": "de743c44c141e287df8a6fe9cca6bf3040de35dd744ecc9d5106c711e264a4b4",
23
+ "generators/lib/templates/query-declarative-catalog.js": "e571ca7ae08944ff11bbbcfaa75c1558cdfa6be6fa8d2f919795dbe118a42db3",
24
+ "generators/lib/templates/db-connection-env.js": "fbd9dc6caa4771f9e4ea4cfbee53f7d6e63937ba9fabad39da5e22ab55933467"
25
25
  },
26
26
  "stats": {
27
27
  "totalFiles": 18,
@@ -31,7 +31,7 @@
31
31
  "signature": {
32
32
  "algorithm": "ed25519",
33
33
  "keyId": "rfs-manifest-2026-05",
34
- "value": "6474ec39dcddb8069f2983bde681b008234a4bee7a84ac0a4b8d831e313faf24f98980c64d369c562f49a75694dc680076109d459954d3e617a50fe7d287040d",
34
+ "value": "1467eb2cf73a93bd5e2f28f4f9f3c5e4baf15215ea058bd5fee5da859608233b454208dcc472200d07a9cd347494f3fc9e6ad676234bc74feb1f9bdbdf5eaa05",
35
35
  "scope": "canonical-json(manifest-without-signature)"
36
36
  }
37
37
  }
@@ -166,7 +166,7 @@ function expand(str, max, isTop) {
166
166
 
167
167
  N = [];
168
168
 
169
- for (var i = x; test(i, y); i += incr) {
169
+ for (var i = x; test(i, y) && N.length < max; i += incr) {
170
170
  var c;
171
171
  if (isAlphaSequence) {
172
172
  c = String.fromCharCode(i);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "brace-expansion",
3
3
  "description": "Brace expansion as known from sh/bash",
4
- "version": "1.1.14",
4
+ "version": "1.1.15",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git://github.com/juliangruber/brace-expansion.git"
@@ -1,3 +1,10 @@
1
+ ## [1.11.21](https://github.com/iamkun/dayjs/compare/v1.11.20...v1.11.21) (2026-05-26)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * preserve unsupported year tokens in format ([#3015](https://github.com/iamkun/dayjs/issues/3015)) ([#3016](https://github.com/iamkun/dayjs/issues/3016)) ([8fda602](https://github.com/iamkun/dayjs/commit/8fda602beac5abbc64230ddc49085aa532320f26))
7
+
1
8
  ## [1.11.20](https://github.com/iamkun/dayjs/compare/v1.11.19...v1.11.20) (2026-03-12)
2
9
 
3
10
 
@@ -73,7 +73,7 @@ dayjs().isBefore(dayjs()) // query
73
73
 
74
74
  Day.js has great support for internationalization.
75
75
 
76
- But none of them will be included in your build unless you use it.
76
+ But none of them will be included in your build unless you use them.
77
77
 
78
78
  ```javascript
79
79
  import 'dayjs/locale/es' // load on demand
@@ -99,16 +99,15 @@ dayjs().format('Q Do k kk X x') // more available formats
99
99
 
100
100
  📚[Plugin List](https://day.js.org/docs/en/plugin/plugin)
101
101
 
102
+ ## Downloads
103
+ ![Day.js Chart](./docs/assets/download.png)
104
+
102
105
  ## Sponsors
103
106
 
104
107
  Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
105
108
 
106
109
  [[Become a sponsor via Github](https://github.com/sponsors/iamkun/)] [[Become a sponsor via OpenCollective](https://opencollective.com/dayjs#sponsor)]
107
110
 
108
- <a href="https://toyokumo.co.jp" target="_blank">
109
- <img width="70" src="https://user-images.githubusercontent.com/17680888/197092231-2367b5eb-1e43-467e-a311-23f7cd97b086.png">
110
- </a>
111
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
112
111
  <a href="https://github.com/ken-swyfft" target="_blank">
113
112
  <img width="70" src="https://avatars.githubusercontent.com/u/65305317?v=4">
114
113
  </a>
@@ -129,10 +128,18 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
129
128
  <img width="70" src="https://avatars.githubusercontent.com/u/188567998?v=4">
130
129
  </a>
131
130
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
131
+ <a href="https://www.netrouting.com" target="_blank" alt="Netrouting Dedicated Servers">
132
+ <img width="70" src="https://netrouting.com/wp-content/uploads/2026/04/Logo-netrouting.png">
133
+ </a>
134
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
132
135
  <a href="https://anonstories.com" target="_blank">
133
136
  <img alt="Instagram Story Viewer" width="70" src="https://avatars.githubusercontent.com/u/240702364?v=4">
134
137
  </a>
135
138
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
139
+ <a href="https://www.sayfone.com/call-rates " target="_blank">
140
+ <img alt="Sayfone Cheap international calls" width="70" src="https://github.com/user-attachments/assets/68f91139-b190-421b-bcd7-43a8e3d84fe7">
141
+ </a>
142
+ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
136
143
  <a href="https://automatio.ai" target="_blank" alt="Automatio AI">
137
144
  <img width="70" src="https://avatars.githubusercontent.com/u/1984909?v=4" />
138
145
  </a>
@@ -170,11 +177,6 @@ Please give us a 💖 star 💖 to support us. Thank you.
170
177
 
171
178
  And thank you to all our backers! 🙏
172
179
 
173
- <a href="https://opencollective.com/dayjs/backer/0/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/0/avatar.svg?requireActive=false"></a>
174
- <a href="https://opencollective.com/dayjs/backer/1/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/1/avatar.svg?requireActive=false"></a>
175
- <a href="https://opencollective.com/dayjs/backer/2/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/2/avatar.svg?requireActive=false"></a>
176
- <a href="https://opencollective.com/dayjs/backer/3/website?requireActive=false" target="_blank"><img width="35" src="https://opencollective.com/dayjs/backer/3/avatar.svg?requireActive=false"></a>
177
- <br />
178
180
  <a href="https://opencollective.com/dayjs#backers" target="_blank"><img src="https://opencollective.com/dayjs/contributors.svg?width=890" /></a>
179
181
 
180
182
  ## License
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",c="month",f="quarter",h="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return"["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p="$isDayjsObject",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f="set"+(this.$u?"UTC":""),l=(n={},n[a]=f+"Date",n[d]=f+"Date",n[c]=f+"Month",n[h]=f+"FullYear",n[u]=f+"Hours",n[s]=f+"Minutes",n[i]=f+"Seconds",n[r]=f+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,"0")},$=f||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case"YY":return String(e.$y).slice(-2);case"YYYY":return b.s(e.$y,4,"0");case"M":return a+1;case"MM":return b.s(a+1,2,"0");case"MMM":return h(n.monthsShort,a,c,3);case"MMMM":return h(c,a);case"D":return e.$D;case"DD":return b.s(e.$D,2,"0");case"d":return String(e.$W);case"dd":return h(n.weekdaysMin,e.$W,o,2);case"ddd":return h(n.weekdaysShort,e.$W,o,3);case"dddd":return o[e.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return d(1);case"hh":return d(2);case"a":return $(s,u,!0);case"A":return $(s,u,!1);case"m":return String(u);case"mm":return b.s(u,2,"0");case"s":return String(e.$s);case"ss":return b.s(e.$s,2,"0");case"SSS":return b.s(e.$ms,3,"0");case"Z":return i}return null}(t)||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),Y=_.prototype;return O.prototype=Y,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",c],["$y",h],["$D",d]].forEach((function(t){Y[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));
@@ -22,4 +22,4 @@ export var FORMAT_DEFAULT = 'YYYY-MM-DDTHH:mm:ssZ';
22
22
  export var INVALID_DATE_STRING = 'Invalid Date'; // regex
23
23
 
24
24
  export var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
25
- export var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
25
+ export var REGEX_FORMAT = /\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
@@ -1,7 +1,8 @@
1
- import { MILLISECONDS_A_DAY, MILLISECONDS_A_HOUR, MILLISECONDS_A_MINUTE, MILLISECONDS_A_SECOND, MILLISECONDS_A_WEEK, REGEX_FORMAT } from '../../constant';
1
+ import { MILLISECONDS_A_DAY, MILLISECONDS_A_HOUR, MILLISECONDS_A_MINUTE, MILLISECONDS_A_SECOND, MILLISECONDS_A_WEEK } from '../../constant';
2
2
  var MILLISECONDS_A_YEAR = MILLISECONDS_A_DAY * 365;
3
3
  var MILLISECONDS_A_MONTH = MILLISECONDS_A_YEAR / 12;
4
- var durationRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
4
+ var DURATION_REGEX_PARSE = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
5
+ var DURATION_REGEX_FORMAT = /\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g;
5
6
  var unitToMS = {
6
7
  years: MILLISECONDS_A_YEAR,
7
8
  months: MILLISECONDS_A_MONTH,
@@ -94,7 +95,7 @@ var Duration = /*#__PURE__*/function () {
94
95
  }
95
96
 
96
97
  if (typeof input === 'string') {
97
- var d = input.match(durationRegex);
98
+ var d = input.match(DURATION_REGEX_PARSE);
98
99
 
99
100
  if (d) {
100
101
  var properties = d.slice(2);
@@ -192,7 +193,7 @@ var Duration = /*#__PURE__*/function () {
192
193
  ss: $u.s(this.$d.seconds, 2, '0'),
193
194
  SSS: $u.s(this.$d.milliseconds, 3, '0')
194
195
  };
195
- return str.replace(REGEX_FORMAT, function (match, $1) {
196
+ return str.replace(DURATION_REGEX_FORMAT, function (match, $1) {
196
197
  return $1 || String(matches[match]);
197
198
  });
198
199
  };
@@ -1 +1 @@
1
- [{"key":"af","name":"Afrikaans"},{"key":"am","name":"Amharic"},{"key":"ar-dz","name":"Arabic (Algeria)"},{"key":"ar-iq","name":" Arabic (Iraq)"},{"key":"ar-kw","name":"Arabic (Kuwait)"},{"key":"ar-ly","name":"Arabic (Lybia)"},{"key":"ar-ma","name":"Arabic (Morocco)"},{"key":"ar-sa","name":"Arabic (Saudi Arabia)"},{"key":"ar-tn","name":" Arabic (Tunisia)"},{"key":"ar","name":"Arabic"},{"key":"az","name":"Azerbaijani"},{"key":"be","name":"Belarusian"},{"key":"bg","name":"Bulgarian"},{"key":"bi","name":"Bislama"},{"key":"bm","name":"Bambara"},{"key":"bn-bd","name":"Bengali (Bangladesh)"},{"key":"bn","name":"Bengali"},{"key":"bo","name":"Tibetan"},{"key":"br","name":"Breton"},{"key":"bs","name":"Bosnian"},{"key":"ca","name":"Catalan"},{"key":"cs","name":"Czech"},{"key":"cv","name":"Chuvash"},{"key":"cy","name":"Welsh"},{"key":"da","name":"Danish"},{"key":"de-at","name":"German (Austria)"},{"key":"de-ch","name":"German (Switzerland)"},{"key":"de","name":"German"},{"key":"dv","name":"Maldivian"},{"key":"el","name":"Greek"},{"key":"en-au","name":"English (Australia)"},{"key":"en-ca","name":"English (Canada)"},{"key":"en-gb","name":"English (United Kingdom)"},{"key":"en-ie","name":"English (Ireland)"},{"key":"en-il","name":"English (Israel)"},{"key":"en-in","name":"English (India)"},{"key":"en-nz","name":"English (New Zealand)"},{"key":"en-sg","name":"English (Singapore)"},{"key":"en-tt","name":"English (Trinidad & Tobago)"},{"key":"en","name":"English"},{"key":"eo","name":"Esperanto"},{"key":"es-do","name":"Spanish (Dominican Republic)"},{"key":"es-mx","name":"Spanish (Mexico)"},{"key":"es-pr","name":"Spanish (Puerto Rico)"},{"key":"es-us","name":"Spanish (United States)"},{"key":"es","name":"Spanish"},{"key":"et","name":"Estonian"},{"key":"eu","name":"Basque"},{"key":"fa","name":"Persian"},{"key":"fi","name":"Finnish"},{"key":"fo","name":"Faroese"},{"key":"fr-ca","name":"French (Canada)"},{"key":"fr-ch","name":"French (Switzerland)"},{"key":"fr","name":"French"},{"key":"fy","name":"Frisian"},{"key":"ga","name":"Irish or Irish Gaelic"},{"key":"gd","name":"Scottish Gaelic"},{"key":"gl","name":"Galician"},{"key":"gom-latn","name":"Konkani Latin script"},{"key":"gu","name":"Gujarati"},{"key":"he","name":"Hebrew"},{"key":"hi","name":"Hindi"},{"key":"hr","name":"Croatian"},{"key":"ht","name":"Haitian Creole (Haiti)"},{"key":"hu","name":"Hungarian"},{"key":"hy-am","name":"Armenian"},{"key":"id","name":"Indonesian"},{"key":"is","name":"Icelandic"},{"key":"it-ch","name":"Italian (Switzerland)"},{"key":"it","name":"Italian"},{"key":"ja","name":"Japanese"},{"key":"jv","name":"Javanese"},{"key":"ka","name":"Georgian"},{"key":"kk","name":"Kazakh"},{"key":"km","name":"Cambodian"},{"key":"kn","name":"Kannada"},{"key":"ko","name":"Korean"},{"key":"ku","name":"Kurdish"},{"key":"ky","name":"Kyrgyz"},{"key":"lb","name":"Luxembourgish"},{"key":"lo","name":"Lao"},{"key":"lt","name":"Lithuanian"},{"key":"lv","name":"Latvian"},{"key":"me","name":"Montenegrin"},{"key":"mi","name":"Maori"},{"key":"mk","name":"Macedonian"},{"key":"ml","name":"Malayalam"},{"key":"mn","name":"Mongolian"},{"key":"mr","name":"Marathi"},{"key":"ms-my","name":"Malay"},{"key":"ms","name":"Malay"},{"key":"mt","name":"Maltese (Malta)"},{"key":"my","name":"Burmese"},{"key":"nb","name":"Norwegian Bokmål"},{"key":"ne","name":"Nepalese"},{"key":"nl-be","name":"Dutch (Belgium)"},{"key":"nl","name":"Dutch"},{"key":"nn","name":"Nynorsk"},{"key":"oc-lnc","name":"Occitan, lengadocian dialecte"},{"key":"pa-in","name":"Punjabi (India)"},{"key":"pl","name":"Polish"},{"key":"pt-br","name":"Portuguese (Brazil)"},{"key":"pt","name":"Portuguese"},{"key":"rn","name":"Kirundi"},{"key":"ro","name":"Romanian"},{"key":"ru","name":"Russian"},{"key":"rw","name":"Kinyarwanda (Rwanda)"},{"key":"sd","name":"Sindhi"},{"key":"se","name":"Northern Sami"},{"key":"si","name":"Sinhalese"},{"key":"sk","name":"Slovak"},{"key":"sl","name":"Slovenian"},{"key":"sq","name":"Albanian"},{"key":"sr-cyrl","name":"Serbian Cyrillic"},{"key":"sr","name":"Serbian"},{"key":"ss","name":"siSwati"},{"key":"sv-fi","name":"Finland Swedish"},{"key":"sv","name":"Swedish"},{"key":"sw","name":"Swahili"},{"key":"ta","name":"Tamil"},{"key":"te","name":"Telugu"},{"key":"tet","name":"Tetun Dili (East Timor)"},{"key":"tg","name":"Tajik"},{"key":"th","name":"Thai"},{"key":"tk","name":"Turkmen"},{"key":"tl-ph","name":"Tagalog (Philippines)"},{"key":"tlh","name":"Klingon"},{"key":"tr","name":"Turkish"},{"key":"tzl","name":"Talossan"},{"key":"tzm-latn","name":"Central Atlas Tamazight Latin"},{"key":"tzm","name":"Central Atlas Tamazight"},{"key":"ug-cn","name":"Uyghur (China)"},{"key":"uk","name":"Ukrainian"},{"key":"ur","name":"Urdu"},{"key":"uz-latn","name":"Uzbek Latin"},{"key":"uz","name":"Uzbek"},{"key":"vi","name":"Vietnamese"},{"key":"x-pseudo","name":"Pseudo"},{"key":"yo","name":"Yoruba Nigeria"},{"key":"zh-cn","name":"Chinese (China)"},{"key":"zh-hk","name":"Chinese (Hong Kong)"},{"key":"zh-tw","name":"Chinese (Taiwan)"},{"key":"zh","name":"Chinese"}]
1
+ [{"key":"af","name":"Afrikaans"},{"key":"am","name":"Amharic"},{"key":"ar-dz","name":"Arabic (Algeria)"},{"key":"ar-iq","name":" Arabic (Iraq)"},{"key":"ar-kw","name":"Arabic (Kuwait)"},{"key":"ar-ly","name":"Arabic (Lybia)"},{"key":"ar-ma","name":"Arabic (Morocco)"},{"key":"ar-sa","name":"Arabic (Saudi Arabia)"},{"key":"ar-tn","name":" Arabic (Tunisia)"},{"key":"ar","name":"Arabic"},{"key":"az","name":"Azerbaijani"},{"key":"be","name":"Belarusian"},{"key":"bg","name":"Bulgarian"},{"key":"bi","name":"Bislama"},{"key":"bm","name":"Bambara"},{"key":"bn-bd","name":"Bengali (Bangladesh)"},{"key":"bn","name":"Bengali"},{"key":"bo","name":"Tibetan"},{"key":"br","name":"Breton"},{"key":"bs","name":"Bosnian"},{"key":"ca","name":"Catalan"},{"key":"cs","name":"Czech"},{"key":"cv","name":"Chuvash"},{"key":"cy","name":"Welsh"},{"key":"da","name":"Danish"},{"key":"de-at","name":"German (Austria)"},{"key":"de","name":"German"},{"key":"de-ch","name":"German (Switzerland)"},{"key":"dv","name":"Maldivian"},{"key":"en-au","name":"English (Australia)"},{"key":"el","name":"Greek"},{"key":"en-ca","name":"English (Canada)"},{"key":"en-gb","name":"English (United Kingdom)"},{"key":"en-ie","name":"English (Ireland)"},{"key":"en-il","name":"English (Israel)"},{"key":"en-in","name":"English (India)"},{"key":"en-nz","name":"English (New Zealand)"},{"key":"en-sg","name":"English (Singapore)"},{"key":"en-tt","name":"English (Trinidad & Tobago)"},{"key":"en","name":"English"},{"key":"eo","name":"Esperanto"},{"key":"es-do","name":"Spanish (Dominican Republic)"},{"key":"es-mx","name":"Spanish (Mexico)"},{"key":"es-pr","name":"Spanish (Puerto Rico)"},{"key":"es-us","name":"Spanish (United States)"},{"key":"es","name":"Spanish"},{"key":"et","name":"Estonian"},{"key":"eu","name":"Basque"},{"key":"fa","name":"Persian"},{"key":"fi","name":"Finnish"},{"key":"fo","name":"Faroese"},{"key":"fr-ca","name":"French (Canada)"},{"key":"fr-ch","name":"French (Switzerland)"},{"key":"fr","name":"French"},{"key":"fy","name":"Frisian"},{"key":"ga","name":"Irish or Irish Gaelic"},{"key":"gl","name":"Galician"},{"key":"gom-latn","name":"Konkani Latin script"},{"key":"gd","name":"Scottish Gaelic"},{"key":"gu","name":"Gujarati"},{"key":"he","name":"Hebrew"},{"key":"hi","name":"Hindi"},{"key":"hr","name":"Croatian"},{"key":"ht","name":"Haitian Creole (Haiti)"},{"key":"hu","name":"Hungarian"},{"key":"hy-am","name":"Armenian"},{"key":"id","name":"Indonesian"},{"key":"is","name":"Icelandic"},{"key":"it-ch","name":"Italian (Switzerland)"},{"key":"it","name":"Italian"},{"key":"ja","name":"Japanese"},{"key":"jv","name":"Javanese"},{"key":"ka","name":"Georgian"},{"key":"kk","name":"Kazakh"},{"key":"km","name":"Cambodian"},{"key":"kn","name":"Kannada"},{"key":"ko","name":"Korean"},{"key":"ku","name":"Kurdish"},{"key":"ky","name":"Kyrgyz"},{"key":"lb","name":"Luxembourgish"},{"key":"lo","name":"Lao"},{"key":"lt","name":"Lithuanian"},{"key":"lv","name":"Latvian"},{"key":"me","name":"Montenegrin"},{"key":"mi","name":"Maori"},{"key":"mk","name":"Macedonian"},{"key":"ml","name":"Malayalam"},{"key":"mn","name":"Mongolian"},{"key":"mr","name":"Marathi"},{"key":"ms-my","name":"Malay"},{"key":"ms","name":"Malay"},{"key":"mt","name":"Maltese (Malta)"},{"key":"my","name":"Burmese"},{"key":"nb","name":"Norwegian Bokmål"},{"key":"ne","name":"Nepalese"},{"key":"nl-be","name":"Dutch (Belgium)"},{"key":"nl","name":"Dutch"},{"key":"nn","name":"Nynorsk"},{"key":"oc-lnc","name":"Occitan, lengadocian dialecte"},{"key":"pa-in","name":"Punjabi (India)"},{"key":"pl","name":"Polish"},{"key":"pt-br","name":"Portuguese (Brazil)"},{"key":"pt","name":"Portuguese"},{"key":"rn","name":"Kirundi"},{"key":"ro","name":"Romanian"},{"key":"ru","name":"Russian"},{"key":"rw","name":"Kinyarwanda (Rwanda)"},{"key":"sd","name":"Sindhi"},{"key":"se","name":"Northern Sami"},{"key":"si","name":"Sinhalese"},{"key":"sk","name":"Slovak"},{"key":"sl","name":"Slovenian"},{"key":"sq","name":"Albanian"},{"key":"sr-cyrl","name":"Serbian Cyrillic"},{"key":"sr","name":"Serbian"},{"key":"ss","name":"siSwati"},{"key":"sv-fi","name":"Finland Swedish"},{"key":"sv","name":"Swedish"},{"key":"sw","name":"Swahili"},{"key":"ta","name":"Tamil"},{"key":"te","name":"Telugu"},{"key":"tet","name":"Tetun Dili (East Timor)"},{"key":"tg","name":"Tajik"},{"key":"tk","name":"Turkmen"},{"key":"th","name":"Thai"},{"key":"tl-ph","name":"Tagalog (Philippines)"},{"key":"tr","name":"Turkish"},{"key":"tlh","name":"Klingon"},{"key":"tzm-latn","name":"Central Atlas Tamazight Latin"},{"key":"tzm","name":"Central Atlas Tamazight"},{"key":"tzl","name":"Talossan"},{"key":"ug-cn","name":"Uyghur (China)"},{"key":"uk","name":"Ukrainian"},{"key":"ur","name":"Urdu"},{"key":"uz-latn","name":"Uzbek Latin"},{"key":"uz","name":"Uzbek"},{"key":"vi","name":"Vietnamese"},{"key":"x-pseudo","name":"Pseudo"},{"key":"yo","name":"Yoruba Nigeria"},{"key":"zh-cn","name":"Chinese (China)"},{"key":"zh-hk","name":"Chinese (Hong Kong)"},{"key":"zh-tw","name":"Chinese (Taiwan)"},{"key":"zh","name":"Chinese"}]
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "dayjs",
3
- "version": "1.11.20",
3
+ "version": "1.11.21",
4
4
  "description": "2KB immutable date time library alternative to Moment.js with the same modern API ",
5
5
  "main": "dayjs.min.js",
6
6
  "types": "index.d.ts",
7
7
  "scripts": {
8
- "test": "TZ=Pacific/Auckland npm run test-tz && TZ=Europe/London npm run test-tz && TZ=America/Whitehorse npm run test-tz && npm run test-tz && jest --coverage --coverageThreshold='{ \"global\": { \"lines\": 100} }'",
8
+ "test": "cross-env TZ=Pacific/Auckland npm run test-tz && cross-env TZ=Europe/London npm run test-tz && cross-env TZ=America/Whitehorse npm run test-tz && npm run test-tz && jest --coverage --coverageThreshold=\"{ \\\"global\\\": { \\\"lines\\\": 100} }\"",
9
9
  "test-tz": "date && jest test/timezone.test --coverage=false",
10
10
  "lint": "./node_modules/.bin/eslint src/* test/* build/*",
11
11
  "prettier": "prettier --write \"docs/**/*.md\"",
@@ -1 +1 @@
1
- !function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){"use strict";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,u=31536e6,d=2628e6,a=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,h={years:u,months:d,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+"s"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:""+y(t)+s}:{negative:!1,format:""+t+s}:{negative:!1,format:""}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if("number"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if("object"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if("string"==typeof t){var e=t.match(a);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/u),t%=u,this.$d.months=$(t/d),t%=d,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,"Y"),s=v(this.$d.months,"M"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,"D"),e=v(this.$d.hours,"H"),r=v(this.$d.minutes,"M"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,"S"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?"T":"",h=(d?"-":"")+"P"+t.format+s.format+i.format+a+e.format+r.format+u.format;return"P"===h||"-P"===h?"P0D":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||"YYYY-MM-DDTHH:mm:ss",i={Y:this.$d.years,YY:s.s(this.$d.years,2,"0"),YYYY:s.s(this.$d.years,4,"0"),M:this.$d.months,MM:s.s(this.$d.months,2,"0"),D:this.$d.days,DD:s.s(this.$d.days,2,"0"),H:this.$d.hours,HH:s.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,"0"),SSS:s.s(this.$d.milliseconds,3,"0")};return n.replace(o,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return"milliseconds"===n?s%=1e3:s="weeks"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get("milliseconds")},y.asMilliseconds=function(){return this.as("milliseconds")},y.seconds=function(){return this.get("seconds")},y.asSeconds=function(){return this.as("seconds")},y.minutes=function(){return this.get("minutes")},y.asMinutes=function(){return this.as("minutes")},y.hours=function(){return this.get("hours")},y.asHours=function(){return this.as("hours")},y.days=function(){return this.get("days")},y.asDays=function(){return this.as("days")},y.weeks=function(){return this.get("weeks")},y.asWeeks=function(){return this.as("weeks")},y.months=function(){return this.get("months")},y.asMonths=function(){return this.as("months")},y.years=function(){return this.get("years")},y.asYears=function(){return this.as("years")},l}(),p=function(t,s,n){return t.add(s.years()*n,"y").add(s.months()*n,"M").add(s.days()*n,"d").add(s.hours()*n,"h").add(s.minutes()*n,"m").add(s.seconds()*n,"s").add(s.milliseconds()*n,"ms")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));
1
+ !function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_duration=s()}(this,(function(){"use strict";var t,s,n=1e3,i=6e4,e=36e5,r=864e5,o=31536e6,u=2628e6,d=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/,a=/\[([^\]]+)]|YYYY|YY|Y|M{1,2}|D{1,2}|H{1,2}|m{1,2}|s{1,2}|SSS/g,h={years:o,months:u,days:r,hours:e,minutes:i,seconds:n,milliseconds:1,weeks:6048e5},c=function(t){return t instanceof g},f=function(t,s,n){return new g(t,n,s.$l)},m=function(t){return s.p(t)+"s"},l=function(t){return t<0},$=function(t){return l(t)?Math.ceil(t):Math.floor(t)},y=function(t){return Math.abs(t)},v=function(t,s){return t?l(t)?{negative:!0,format:""+y(t)+s}:{negative:!1,format:""+t+s}:{negative:!1,format:""}},g=function(){function l(t,s,n){var i=this;if(this.$d={},this.$l=n,void 0===t&&(this.$ms=0,this.parseFromMilliseconds()),s)return f(t*h[m(s)],this);if("number"==typeof t)return this.$ms=t,this.parseFromMilliseconds(),this;if("object"==typeof t)return Object.keys(t).forEach((function(s){i.$d[m(s)]=t[s]})),this.calMilliseconds(),this;if("string"==typeof t){var e=t.match(d);if(e){var r=e.slice(2).map((function(t){return null!=t?Number(t):0}));return this.$d.years=r[0],this.$d.months=r[1],this.$d.weeks=r[2],this.$d.days=r[3],this.$d.hours=r[4],this.$d.minutes=r[5],this.$d.seconds=r[6],this.calMilliseconds(),this}}return this}var y=l.prototype;return y.calMilliseconds=function(){var t=this;this.$ms=Object.keys(this.$d).reduce((function(s,n){return s+(t.$d[n]||0)*h[n]}),0)},y.parseFromMilliseconds=function(){var t=this.$ms;this.$d.years=$(t/o),t%=o,this.$d.months=$(t/u),t%=u,this.$d.days=$(t/r),t%=r,this.$d.hours=$(t/e),t%=e,this.$d.minutes=$(t/i),t%=i,this.$d.seconds=$(t/n),t%=n,this.$d.milliseconds=t},y.toISOString=function(){var t=v(this.$d.years,"Y"),s=v(this.$d.months,"M"),n=+this.$d.days||0;this.$d.weeks&&(n+=7*this.$d.weeks);var i=v(n,"D"),e=v(this.$d.hours,"H"),r=v(this.$d.minutes,"M"),o=this.$d.seconds||0;this.$d.milliseconds&&(o+=this.$d.milliseconds/1e3,o=Math.round(1e3*o)/1e3);var u=v(o,"S"),d=t.negative||s.negative||i.negative||e.negative||r.negative||u.negative,a=e.format||r.format||u.format?"T":"",h=(d?"-":"")+"P"+t.format+s.format+i.format+a+e.format+r.format+u.format;return"P"===h||"-P"===h?"P0D":h},y.toJSON=function(){return this.toISOString()},y.format=function(t){var n=t||"YYYY-MM-DDTHH:mm:ss",i={Y:this.$d.years,YY:s.s(this.$d.years,2,"0"),YYYY:s.s(this.$d.years,4,"0"),M:this.$d.months,MM:s.s(this.$d.months,2,"0"),D:this.$d.days,DD:s.s(this.$d.days,2,"0"),H:this.$d.hours,HH:s.s(this.$d.hours,2,"0"),m:this.$d.minutes,mm:s.s(this.$d.minutes,2,"0"),s:this.$d.seconds,ss:s.s(this.$d.seconds,2,"0"),SSS:s.s(this.$d.milliseconds,3,"0")};return n.replace(a,(function(t,s){return s||String(i[t])}))},y.as=function(t){return this.$ms/h[m(t)]},y.get=function(t){var s=this.$ms,n=m(t);return"milliseconds"===n?s%=1e3:s="weeks"===n?$(s/h[n]):this.$d[n],s||0},y.add=function(t,s,n){var i;return i=s?t*h[m(s)]:c(t)?t.$ms:f(t,this).$ms,f(this.$ms+i*(n?-1:1),this)},y.subtract=function(t,s){return this.add(t,s,!0)},y.locale=function(t){var s=this.clone();return s.$l=t,s},y.clone=function(){return f(this.$ms,this)},y.humanize=function(s){return t().add(this.$ms,"ms").locale(this.$l).fromNow(!s)},y.valueOf=function(){return this.asMilliseconds()},y.milliseconds=function(){return this.get("milliseconds")},y.asMilliseconds=function(){return this.as("milliseconds")},y.seconds=function(){return this.get("seconds")},y.asSeconds=function(){return this.as("seconds")},y.minutes=function(){return this.get("minutes")},y.asMinutes=function(){return this.as("minutes")},y.hours=function(){return this.get("hours")},y.asHours=function(){return this.as("hours")},y.days=function(){return this.get("days")},y.asDays=function(){return this.as("days")},y.weeks=function(){return this.get("weeks")},y.asWeeks=function(){return this.as("weeks")},y.months=function(){return this.get("months")},y.asMonths=function(){return this.as("months")},y.years=function(){return this.get("years")},y.asYears=function(){return this.as("years")},l}(),p=function(t,s,n){return t.add(s.years()*n,"y").add(s.months()*n,"M").add(s.days()*n,"d").add(s.hours()*n,"h").add(s.minutes()*n,"m").add(s.seconds()*n,"s").add(s.milliseconds()*n,"ms")};return function(n,i,e){t=e,s=e().$utils(),e.duration=function(t,s){var n=e.locale();return f(t,{$l:n},s)},e.isDuration=c;var r=i.prototype.add,o=i.prototype.subtract;i.prototype.add=function(t,s){return c(t)?p(this,t,1):r.bind(this)(t,s)},i.prototype.subtract=function(t,s){return c(t)?p(this,t,-1):o.bind(this)(t,s)}}}));
@@ -525,6 +525,29 @@ function _generateTmpName(opts) {
525
525
  return path.join(tmpDir, opts.dir, name);
526
526
  }
527
527
 
528
+ /**
529
+ * Check the prefix, postfix, and template options.
530
+ *
531
+ * Rejects non-string inputs so that a non-string `.includes('..')` cannot evade
532
+ * the substring check (e.g. an Array whose `.includes('..')` is element-wise,
533
+ * or a duck-typed object with a custom `.includes`), and so that the value is
534
+ * not later coerced to a string with traversal sequences via `Array.prototype.join`
535
+ * or `path.join`.
536
+ *
537
+ * @private
538
+ */
539
+ function _assertPath(option, value) {
540
+ if (typeof value !== 'string') {
541
+ throw new Error(`${option} option must be a string, got "${typeof value}".`);
542
+ }
543
+
544
+ if (value.includes("..")) {
545
+ throw new Error("Relative value not allowed");
546
+ }
547
+
548
+ return value;
549
+ }
550
+
528
551
  /**
529
552
  * Asserts and sanitizes the basic options.
530
553
  *
@@ -539,13 +562,19 @@ function _assertOptionsBase(options) {
539
562
 
540
563
  // must not fail on valid .<name> or ..<name> or similar such constructs
541
564
  const basename = path.basename(name);
542
- if (basename === '..' || basename === '.' || basename !== name)
565
+ if (basename === '..' || basename === '.' || basename !== name) {
543
566
  throw new Error(`name option must not contain a path, found "${name}".`);
567
+ }
544
568
  }
545
569
 
546
570
  /* istanbul ignore else */
547
- if (!_isUndefined(options.template) && !options.template.match(TEMPLATE_PATTERN)) {
548
- throw new Error(`Invalid template, found "${options.template}".`);
571
+ if (!_isUndefined(options.template)) {
572
+ if (typeof options.template !== 'string') {
573
+ throw new Error(`template option must be a string, got "${typeof options.template}".`);
574
+ }
575
+ if (!options.template.match(TEMPLATE_PATTERN)) {
576
+ throw new Error(`Invalid template, found "${options.template}".`);
577
+ }
549
578
  }
550
579
 
551
580
  /* istanbul ignore else */
@@ -561,8 +590,9 @@ function _assertOptionsBase(options) {
561
590
  options.unsafeCleanup = !!options.unsafeCleanup;
562
591
 
563
592
  // for completeness' sake only, also keep (multiple) blanks if the user, purportedly sane, requests us to
564
- options.prefix = _isUndefined(options.prefix) ? '' : options.prefix;
565
- options.postfix = _isUndefined(options.postfix) ? '' : options.postfix;
593
+ options.prefix = _isUndefined(options.prefix) ? '' : _assertPath('prefix', options.prefix);
594
+ options.postfix = _isUndefined(options.postfix) ? '' : _assertPath('postfix', options.postfix);
595
+ options.template = _isUndefined(options.template) ? undefined : _assertPath('template', options.template);
566
596
  }
567
597
 
568
598
  /**
@@ -578,7 +608,7 @@ function _getRelativePath(option, name, tmpDir, cb) {
578
608
 
579
609
  const relativePath = path.relative(tmpDir, resolvedPath);
580
610
 
581
- if (!resolvedPath.startsWith(tmpDir)) {
611
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
582
612
  return cb(new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`));
583
613
  }
584
614
 
@@ -597,7 +627,7 @@ function _getRelativePathSync(option, name, tmpDir) {
597
627
  const resolvedPath = _resolvePathSync(name, tmpDir);
598
628
  const relativePath = path.relative(tmpDir, resolvedPath);
599
629
 
600
- if (!resolvedPath.startsWith(tmpDir)) {
630
+ if (relativePath.startsWith('..') || path.isAbsolute(relativePath)) {
601
631
  throw new Error(`${option} option must be relative to "${tmpDir}", found "${relativePath}".`);
602
632
  }
603
633
 
@@ -1,20 +1,10 @@
1
1
  {
2
2
  "name": "tmp",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "description": "Temporary file and directory creator",
5
5
  "author": "KARASZI István <github@spam.raszi.hu>",
6
- "contributors": [
7
- "Carsten Klein <trancesilken@gmail.com> (https://github.com/silkentrance)"
8
- ],
9
- "keywords": [
10
- "temporary",
11
- "tmp",
12
- "temp",
13
- "tempdir",
14
- "tempfile",
15
- "tmpdir",
16
- "tmpfile"
17
- ],
6
+ "contributors": ["Carsten Klein <trancesilken@gmail.com> (https://github.com/silkentrance)"],
7
+ "keywords": ["temporary", "tmp", "temp", "tempdir", "tempfile", "tmpdir", "tmpfile"],
18
8
  "license": "MIT",
19
9
  "repository": "https://github.com/raszi/node-tmp.git",
20
10
  "homepage": "http://github.com/raszi/node-tmp",
@@ -33,9 +23,7 @@
33
23
  "mocha": "^10.2.0"
34
24
  },
35
25
  "main": "lib/tmp.js",
36
- "files": [
37
- "lib/"
38
- ],
26
+ "files": ["lib/"],
39
27
  "changelog": {
40
28
  "labels": {
41
29
  "breaking": ":boom: Breaking Change",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@restforgejs/platform",
3
- "version": "4.3.8",
3
+ "version": "5.0.1",
4
4
  "description": "RESTForge Platform — Schema-driven backend framework and code generator for full-stack Node.js applications. Generates production backend APIs with multi-database support (PostgreSQL, MySQL, Oracle). A platform builder and backend runtime, not an API testing or client tool.",
5
5
  "main": "server.js",
6
6
  "bin": {